char* argv[]
-
moin,
int _tmain(int argc, char* argv[])
{
char* a=argv[1];
cout << a << endl;return 0;
}cmd aufruf: > progname 1000
aber egal was für ein string ich eingebe es gibt mir nur das erste zeichen aus.
*(a+1) gibt mir irgendwas aber nicht das 2te zeichen.

-
nameac schrieb:
...
int _tmain(...Ich tippe mal, dass _tmain anders arbeitet als das standardkonforme main() ...
Windows-spezifische Programmierung ?
Mein Tipp: Wenn Du sowieso eine "Konsolenanwendung" schreiben willst, solltest Du auch main verwenden (und Dein Projekt entsprechend stricken).Gruß,
Simon2.
-
Simon2 schrieb:
Ich tippe mal, dass _tmain anders arbeitet als das standardkonforme main() ...
tut es wohl auch. das kriegt unicode-strings vorgesetzt. mit 'main' sollte es gehen...
-
net schrieb:
Simon2 schrieb:
Ich tippe mal, dass _tmain anders arbeitet als das standardkonforme main() ...
tut es wohl auch. das kriegt unicode-strings vorgesetzt. mit 'main' sollte es gehen...
Und wieso ist argv dann ein char* argv[], müsste es dann nicht ein wchar_t* argv[] sein? Ein übliches Unicode-Zeichen bekommst du doch in ein char gar nicht rein.
-
Wenn Du unbedingt argv[1][] Zeichen für Zeichen ausgeben willst....
unsigned int index = 0; while (0 != argv[1][index]){ cout << argv[1][index]; index++; } cout << endl; exit(0);Ansonsten müßte
cout << argv[1] << endl; exit(0);auch reichen.
Grüße Max
-
mawis schrieb:
Ein übliches Unicode-Zeichen bekommst du doch in ein char gar nicht rein.
das erklärt ja auch, warum er nur ein zeichen sieht. das nächste ist nämlich 0 und für 'cout' ist damit der string zuende.