Probleme mit den Kommandozeilenargumenten
-
Hallo,
ich schreibe gerade ein tool, welches vor Begin über die Kommandozeile Argumente mitnehmen soll. Normal kein Ding, aber heut klappt es einfach nicht
. Vielleicht könnt ihr mir sagen wo mein Fehler liegt. Ich bekomm immer die Fehlermeldung:
"assignment to 'short int' from 'char *' lacks a cast
"assignment to 'int' from 'char *' lacks a castDer Code schaut bisher so aus:
int main(int argc, char *argv[])
{
short id;
Date datum;
int nummer;if( argc=4 )
{
id = argv[1];
datum = argv[2];
nummer = argv[3];
}....
Thanx im Voraus

Heut ist nicht mein Tag, aber er muss weiter gehen...
-
int main(int argc, char *argv[]) { short id; Date datum; int nummer; if( argc=4 ) { id = argv[1]; // argv[1] ist ein char* und kein short. Also musst du das Umwandeln datum = argv[2]; nummer = argv[3]; // argv[2] ist ein char* und kein short. Also musst du das Umwandeln }
-
Hallo,
if( argc=4 )Was willst du mit diesem if bezwecken? Ich denke mal du willst prüfen ob argc == 4 ist. Hier weist du argc aber den Wert 4 zu, was dann für die if-Bedingung immer true ist.
Desweiteren kannst du nicht einfach so einen char* in einen int umwandeln. Auch hier ist es wichtig, was du willst ;). Willst du die Argumente, die als char* vorliegen in Zahlen umwandeln? Dann siehe FAQ (Thread Einmal Zahl nach String und zurück), oder willst du nur das Bitmuster von char* als Int interpretieren? dann verwende einen reinterpret_cast<>() (Ich glaube aber eher, dass du ersteres willst ).
/edit: Zu spät...
Gruß Caipi
-
Die Kommandozeilenparameter liegen als C-Strings (char[]) vor - die mußt du selber in numerische Daten umwandeln (z.B. mit atol oder StringStream-Schiebereien).
-
dankeschön,
da habt ihr aber ganz schön viele leichtsinnsfehler gefunden.
Lauf ich heut blind durch die Gegend?Natürlich will ich mit argc = 4 prüfen ob es 4 Argumente sind, aber so nicht..
Das man einem int kein char zuweisen kann weiß ich auch, nur heut...Ich geh heut früher schlafen, hope it works!
Nochmal Danke