Befehlsargumente beim Debugging

Hallo zusammen,

ich mal wieder.

Da mir bisher ja wirklich gut geholfen werden konnte (wofür ich mich auch nochmal bedanken möchte), wende ich mich gerne mit neuen Problemen an die Profis hehe.

Wieder ein neues Programm. Es funktioniert alles soweit, doch ich bemerkte das eine Aufgabe anders gewünscht war. Ich könnte das ganze Programm umschreiben, das wäre aber nicht wirklich schön, ich könnte aber auch nach einer Lösung suchen um diesen Weg zu umgehen.

Leider muss ich zugeben, das dieses Stück was fehlt, für mich nicht ganz so verständlich ist.

Und zwar sollen Werte über „Befehlsargumente“ beim Debugging vorgegeben werden. Leider weis ich nicht so recht, wie ich das angehen soll. Ich weis das dafür argv und argc in main() nötig sind… aber das wars auch schon.

Mein Main sieht also so aus…


int main(int argc, char argv[])

Ich habe also mal „Test“ in die Befehlsargumente geschrieben, bekomme aber, wenn ich mir argv ausgeben lasse irgendetwas kryptisches raus.

Was will ich machen?

Erstmal das verstehen, und dann …

Ich habe eine Struktur, die jeweils eine char-Zeichenkette und einen Intwert „anzahl“ enthält. Es geht um Produkte… Wieviele Einheiten habe ich von den und den Produkt. Um aber nicht alles umschreiben zu müssen, würde ich gerne die Werte der Befehlsargumente an diese Strutkur übergeben. Die Anzahl dieser soll jeweils 0 sein…

Kann mir jemand helfen?

Im übrigen ist das Programm weit komplexer natürlich, nur wenn ich dieses Problem löse, dann funktioniert der Rest des Programms ja ganz normal (da ich ja sonst per Eingabe die Produkte und Anzahl abfrage).

Vielen dank schonmal im vorraus.

MFG

Bio

Hallo,


int main(int argc, char argv[])

Das zweite Argument sollte char **argv oder char *argv[] sein (Die Kommandozeile ist eine Liste von Strings, und ein String ist ein char*).

Gruesse,
Moritz

Danke erstmal,

also ich habe es mal geändert, aber dann scheint er mir nur die Adresse zu zeigen… also 00D9C… sowas eben. Habe ja zur Probe ob es funktioniert direkt in main geschrieben.


cout

Hallo,


cout

Ahhh… jetzt hat es klick gemacht. Sehr gut, eigentlich gar nicht so kompliziert… danke nochmal.

Nun zur zweiten Frage die ich hatte, kann ich diesen Wert normal an einen anderen aus einer Struktur übergeben? Wenn ja, wie?

Hallo,

Nun zur zweiten Frage die ich hatte, kann ich diesen Wert
normal an einen anderen aus einer Struktur übergeben?

Wie einen ganz normalen String eben.

Wenn ja, wie?

mit ‚=‘ oder ‚strcpy‘, je nach dem, was du willst.

Gruesse,
Moritz

Hab es mittlerweile herausbekommen.

Also ich hatte einen char[30] Wert, der den Inhalt von argv[n] bekommen sollte.

Per „=“ ging es nicht. Habe es dann über strcmp hinbekommen.

Danke an alle die geholfen haben.

Hallo,

Per „=“ ging es nicht. Habe es dann über strcmp hinbekommen.

Das wundert mich jetzt aber, strcmp vergleicht Strings, und kopiert sie nicht.

Grüße,
Moritz