2016-11-20 3 views
0

Ich verwende fstream, um auf eine Datei zuzugreifen und ihren Inhalt zu extrahieren. Wenn ich gehe, um seine Daten auszugeben, bekomme ich nur ein seltsames Symbol. Dies ist der Prozess, den ich verwende. Ich habe es vorher mit Erfolg verwendet, aber jetzt scheint ich ein Problem zu haben. Hier ist der Code.Seltsames Symbol beim Lesen der Datei in C++

#include<iostream> 
    #include<fstream> 

    using namespace std; 

    int main() { 
     char text; 
     int waitForIt; 
     fstream Txt1("In.txt", ios::in); 


     cout << "\n\tcontents of In.txt:" << endl << endl; 
     cout << "\t\t"; 
     Txt1.get(text); 
     do { 
      cout << text; 
      Txt1.get(text); 
     } while (!Txt1.eof()); 
     Txt1.close(); 
     cin >> waitForIt; 
    }; 

Dies ist, was ausgegeben wird:

Symbol being output as char text

+1

Wäre es nicht sauberer sein, zu schreiben 'while (Text << fstream) cout << Text;'? – ForceBru

+0

und was ist der tatsächliche Inhalt Ihrer Eingabedatei? –

+0

Dieser Code funktioniert gut für mich. Das Problem könnte mit "In.txt" – Ash

Antwort

1

Ich wette, Ihre Datei konnte nicht geöffnet werden. Wie Sie Ihre Schleife geschrieben haben, drucken Sie das Zeichen, von dem Sie glauben, dass es gelesen wurde, indem Sie die Funktion get verwenden, auch wenn das Lesen fehlgeschlagen ist.

sollten Sie tun:

fstream Txt1("In.txt", ios::in); 
if (Txt1.is_open()) 
{ 
    cout << "\n\tcontents of In.txt:" << endl << endl; 
    cout << "\t\t"; 
    while (!Txt1.eof()) 
    { 
     Txt1.get(text); 
     cout << text; 
    } 
    Txt1.close(); 
} 
else 
{ 
    cout << "Unable to open file" << endl; 
} 
Verwandte Themen