2016-05-05 43 views
-1

我這樣做,在十進制,十六進制和八進制形式創建了大量文件的程序:如何讀取我在同一程序C++中創建的文件?

int main() 
{ 
    int i; 
    cout << "Enter number" << endl; 
    cin >> i; 
    system("pause"); 
    CreateFile(i); 
    ShowFile(); 
    return 0; 
} 

void CreateFile(int i) 
{ 
    ofstream file("file.txt", ios::app); 
    file << "--------------------------------\n"; 
    file << "Number in decimal is:" << i << "\n"; 
    file << hex << setiosflags(ios::uppercase); 
    file << "Number in hex is:: " << i << "\n"; 
    file << dec << resetiosflags(ios::showbase); 
    file << oct << setiosflags(ios::uppercase); 
    file << "Number in octal is: " << i << "\n"; 
    file.close(); 
} 

然而我不知道如何在控制檯閱讀:

void showFile() 
{ 
    int open; 
    ifstream file("file.txt", ios::in); 
    while (!file.eof() == false) { 
     file >> open; 
     cout << "The number is " << open << endl; 
    } 
} 

我該如何打開它?

+0

'while(!archivo.eof()== false)'所以你只有在EOF達到的時候才能讀取文件?還要注意''archivo'沒有在發佈的代碼中聲明。 – MikeCAT

+0

所有這些都沒有意義。您正在將一些文本寫入輸出文件,然後想從中讀取單個數字?這需要更復雜的解析。 –

+0

請檢查[爲什麼iostream :: eof內循環條件被認爲是錯誤的?](http://stackoverflow.com/questions/5605125/why-is-iostreameof-inside-a-loop-condition-considered-wrong) 。 –

回答

2

你完全按照你做的那樣打開它。

您的問題不是打開文件,而是讀取文件。你打開文件就好了。你無法正確閱讀,你的問題是別的。你實際上有兩個問題:

1)你不是checking for the end-of-file condition correctly

2)你在文件中寫了幾行文字。但是,以某種方式讀取文件的代碼莫名其妙地期望文件僅包含數字,而不是您寫入文本的全部文本。

還有第三個問題,實際上是:錯誤的代碼縮進。瞭解如何正確縮進代碼可以提高可讀性,並且通常有助於查找錯誤。

相關問題