Zum Inhalt springen

Konsolenprogramm mit Parameterübergabe


Kevinst

Empfohlene Beiträge

Hallo,

ich habe folgendes Problem undzwar soll ich ein Programm erstellen was per cmd aufgerufen wird und dann direkt beim aufruf parameter übergeben bekommen soll.

Das Programm soll beim aufruf eine anzahl von sekunden als parameter übergeben bekommen, welche ich dann in der Konsolenanwendung verarbeiten möchte.

Das ganze soll in c++ geschrieben werden und eine Konsolenanwendung sein.

Den programmstart stelle ich mir in cmd wie folgt vor:

meinProgramm 60 (um den Parameter 60 sekunden anzugeben).

Kann mir da jemand sagen wie das funktioniert?

Danke

Link zu diesem Kommentar
Auf anderen Seiten teilen

nei leider nicht aber ich werd dann mal google befragen danke!

Edit:

Habe google befragt und es klappt danke für deine Hilfe hier das Programm

#include <iostream>

#include <windows.h>

using namespace std;

int i,eingabe;

int main(int argc, char* argv[])

{

eingabe=atoi(argv[1]);

for (i=eingabe;i>0;i--)

{

Sleep(1000);

system("CLS");

cout<<"Noch "<<i<<" Sekunden";

}

system("CLS");

}

Link zu diesem Kommentar
Auf anderen Seiten teilen

ja wenn kein gültiger wert angegeben wir läuft das programm so durch ohne wartezeit auch bei buchstaben oder ähnliches.

Habs aber auch noch was abgeändert:

#include <iostream>

#include <windows.h>

using namespace std;

int i,eingabe;

int main(int argc, char* argv[])

{

eingabe=atoi(argv[1]);

if (eingabe>0)

{

for (i=eingabe;i>0;i--)

{

Sleep(1000);

system("CLS");

cout<<"Noch "<<i<<" Sekunden";

}

}

else

{

cout<<"\n\nDer Parameter fuer die Wartezeit muss in folgendem Format eingegeben werden: \n";

cout<<"\nwarte n (n=Zeit in Sekunden)\n\n";

}

}

hier die EXE warte.zip]warte.zip

Link zu diesem Kommentar
Auf anderen Seiten teilen

ja wenn kein gültiger wert angegeben wir läuft das programm so durch ohne wartezeit auch bei buchstaben oder ähnliches.

Ich würde mindestens argc überprüfen, da sonst undefiniertes Verhalten entstehen kann. argv auf Plausibilität zu überprüfen kann natürlich auch nicht verkehrt sein.

Link zu diesem Kommentar
Auf anderen Seiten teilen

sobald was falsches eingegeben wird liefert atoi den wert 0 zurück

Und wenn nichts als Parameter übergeben wird greifst du trotzdem einfach auf argv[1] zu.

In diesem Fall hast du Glück, da per Definition argv[argc] NULL sein _sollte_.

Aber solltest du das immer so machen und ohne Parameter z.B. auf argv[2] zugreifen wollen, und ohne jegliche Prüfung dies sofort in eine weiterverarbeitende Funktion schickst, kannst du nichtmehr vorraussagen was passiert.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...