[Solved] if block wird nicht ausgeführt
-
Hi Leute,
ich habe folgendes Problem:
Ich habe eine Funktion, die aus einer Textdatei
Zeichen (char) für Zeichen ausliest, bis ein
bestimmtes Zeichen kommt (| = char 124).Ich habe eine for-schleife, in der für jedes Zeichen
if-block kommt, der prüft, ob das Zeichen nun den
ASCII Code 124 (entspricht dem |) hat. Dann soll es
einen entsprechenden Code ausführen, was es aber NICHT
tut. Ich weiss nicht wo der Fehler liegt, Compiler
gibt mir auch keine Fehler aus (Code::Blocks).ifstream source; source.open(input.c_str()); char c; for(int i=0;i<31;++i) { source.get(c); if(c==124) { // Code to run } else { // Code to run } }Das else wird jedesmal korrekt ausgeführt, das if nicht!
mfG
-
Du willst nicht
source.get( c );sondernc = source.get( );.greetz, Swordfish
-
Ahhh! Danke swordfish! Hatte eben auf dem Wiki
nach fstream gesucht, und da war so ein Beispiel,
wo eben source.get(c) stand!Demnach ist der Code im Wiki falsch?
MfG
Korr
-
Link?
greetz, Swordfish
-
Wikibooks - fstream
char c; // und jetzt, jedes Zeichen ... while (Quelldatei.get(c)) { // ... einzeln ... Zieldatei.put(c); // ... in die Zieldatei schreiben. }MfG
-
Tja, das ist quatsch.
greetz, Swordfish
-
http://www.cppreference.com/cppio/get.html bestätigt die Existenz der Form
istream& get( char& ch );Wenn du aber den Wert des Zeichens in der if-Bedingung verwenden willst, kannst du das Zeichen auch als int auslesen mit der Form
int get();
-
Ich hab' vor meinem Post auch nocheinmal nachgeschlagen und tatsächlich die Referenz übersehen. Sorry.
greetz, Swordfish