zwei chars miteinander vergleichen und dann if/else abfrage...
-
hallo,
ich habe zwei char´s die zumindest in meiner messagebox ausgabe gleich erscheinen. nun mochte ich gerne, dass bei gleichheit in die if-schleife gesprungen wird und andernfalls in else. leider klappt das alles nicht.
wer weiss warum mein vergleich immer 1 oder mehr ergibt (wie kann ich das überhaupt ausgeben? (Bei OutputDebugString ergebnis; gibts fehler)? wie vergleiche ich die beiden char´s dass ich ein true oder false rausbekomme?// wenn szFileName name gleich dem gewünschten exeregname dann kopiere nicht! int ergebnis = 0; ergebnis = (szFileName - exeregname); //OutputDebugString ergebnis; // MessageBox(NULL, ergebnis, TEXT("Pfad:"), MB_OK | MB_ICONINFORMATION); if (ergebnis = 1) { OutputDebugString("kopiere NICHT !!!! "); //return 0; } // andernfalls kopiervorgang: else { // Quelldatei einlesen ifstream FileInCopy(szOwnPath, ios::binary); OutputDebugString(" kopiere ..... VON "); OutputDebugString(szOwnPath); MessageBox(NULL, szFileName, TEXT("Pfad:"), MB_OK | MB_ICONINFORMATION); // Zieldatei schreiben ofstream FileOutCopy(szPath, ios::binary); OutputDebugString(" kopiere ..... ZIEL "); OutputDebugString(szPath); MessageBox(NULL, exeregname, TEXT("Pfad:"), MB_OK | MB_ICONINFORMATION); if (FileInCopy) FileOutCopy << FileInCopy.rdbuf(); //return 0; } return 0;
-
if (ergebnis = 1)http://www.highscore.de/cpp/einfuehrung/operatoren.html#vergleich
-
wx++ schrieb:
if (ergebnis = 1)http://www.highscore.de/cpp/einfuehrung/operatoren.html#vergleich
im eifer des gefechtes ... natürlich == aber dennoch klappts nicht.
daran lag es nicht das meine schleife nicht funktioniert
kann man chars überhaupt so subtrahieren wie ich das das mache ?
-
also ich sehe da gar keine schleife...
ich glaube dein fehler ist es, dass szFileName lediglich ein char-zeiger ist, mit dem dann herumgerechnet wird. schau dir mal die funktion strcmp an:
http://www.cplusplus.com/reference/clibrary/cstring/strcmp/
-
daersc schrieb:
also ich sehe da gar keine schleife...
ich glaube dein fehler ist es, dass szFileName lediglich ein char-zeiger ist, mit dem dann herumgerechnet wird. schau dir mal die funktion strcmp an:
http://www.cplusplus.com/reference/clibrary/cstring/strcmp/danke habs auch gerade rausgefunden gehabt ... das mit dem zeiger ist hier zwar nicht zutreffen bzw funktioniert ein simples -> ergebnis = strcmp(szFileName, exeregname) ...
dennoch ist die antwort auf deine vermutung interessant -> wenn ich einen pointer auf einen char habe, wie bekomme ich da eigentlich einen char draus ?
-
WhiteLion schrieb:
dennoch ist die antwort auf deine vermutung interessant -> wenn ich einen pointer auf einen char habe, wie bekomme ich da eigentlich einen char draus ?
char const *foo = "hallo"; *foo == 'h'; foo[0] == 'h';