Anfänger Problem mit char array und cout
-
Hallo Forum,
ich habe ein Problem mit dem folgen den Code
#define MAX_PATH 260 #include <iostream> using namespace std; int main(int argc, char* argv[]) { int size = strlen(argv[0]); char buff[MAX_PATH]; // finde das erste '\' Zeichen von rechts // aber überspringe ein führendes '\' while( *(argv[0] + --size) != '\\') // lösche den Buffer zur Sicheheit memset(buff,0, MAX_PATH); // kopiere den string in buff mit dem Offset von (size + 2) strcpy(buff, argv[0] + (size + 2)); // Ausgabe durch den iostream cout << "Progname : " << buff << endl; // <-- hier kommt Müll auf der // Konsole, der Debugger (VS2008) zeigt // aber für buff die richtigen Werte an? // Und als Beispiel char buff2[] = {'h','a','l','l','o','\0'}; cout << "Sag hallo: " << buff2 << endl; // <-- funktioniert! // Alle sonstigen erdenklichen (statischen) Varianten funktionieren ebenfalls! return; }System WindowsXP, kein UNICODE Build, VS 2008 Prof. Sp1 Compiler,
ich stehe hier vor dem Problem das ich nicht verstehe was hier passiert.
-
while( *(argv[0] + size--) != '\\')return 1;Das gibt bei mir "Console.exe" aus...
Im übrigen solltest du bei "while" Klammern setzten, zur besseren Übersicht.
Sorry, keine Ahnung woran es liegen könnte
