2016-07-24 66 views
0
ifstream infile; 
infile.open("BONUS.txt"); 

string info; 

    if (!infile) 
     cout << "File Open Failure" << endl; 
    else 
    { 
     while (infile >> info) 
      cout << info << endl; 
      infile.close(); 
    } 

這是我的代碼。無論我做什麼,我的文件總是無法打開。它進入如果和退出。可能是什麼問題?我的文本文件保存在正確的目錄中,沒有任何東西出錯。C++ open()由於任何明顯原因而不工作

+5

如果從IDE啓動,當前目錄可能不是您認爲的那樣。作爲一個測試,嘗試一個完整的文件路徑。 –

+1

文件位於何處? –

+1

[把'perror()'放在'if'主體](http://en.cppreference.com/w/cpp/io/c/perror)打印出文件沒有打開的原因。如果這不能解釋出了什麼問題,請編輯您的問題並添加'perror'輸出。這裏有人可能可以幫助你解釋信息。 – user4581301

回答

0

open()中有兩個參數,要打開的文件和模式。該模式是指你可以用這個文件做什麼,即寫入,讀取等

使用open()時,有六種可能的模式:

  1. 參數in代表輸入。 internal stream buffer啓用輸入。 (用於讀取文件。)
  2. 參數out代表輸出。 same internal buffer啓用輸出。 (用於寫入文件。)
  3. 參數binary允許所有操作以二進制而不是文本完成。
  4. 參數ate代表at end並開始在文件末尾輸出。
  5. 參數app代表append,輸出事件發生在文件末尾。
  6. 參數trunc代表truncate。打開之前存在的所有內容都將被刪除。

看來你想寫入文件,在這種情況下使用out

ifstream infile; 
infile.open("BONUS.txt", out); 

如果您沒有使用正確的模式,該功能將失敗。如果您還有其他問題,請撥打電話fstream::open()