2016-11-20 121 views
0

我使用fstream來訪問文件並提取其內容。當我輸出它的數據時,我繼續得到一個奇怪的符號。這是我正在使用的過程。我以前用它成功,但現在我似乎有一個問題。這是代碼。在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; 
    }; 

這就是正在輸出:

Symbol being output as char text

+1

那豈不是更清潔寫'而(文字<< fstream的)的cout <<文本;'? – ForceBru

+0

和你的輸入文件的實際內容是什麼? –

+0

這段代碼適合我。問題可能出在「In.txt」 – Ash

回答

1

我敢打賭,你的文件無法打開。您編寫循環的方式,即使閱讀失敗,也可以使用get函數打印您認爲已閱讀的字符。

你應該這樣做:

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; 
} 
相關問題