2016-07-24 15 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(); 
    } 

これは私のコードです。そして私が何をしても、私のファイルはいつも開くことができません。 ifとexitを入力します。何が問題になる可能性がありますか?私のテキストファイルは正しいディレクトリに保存されており、何も間違っているようです。明白な理由でC++ open()が動作しない

+5

IDEから起動している場合は、現在のディレクトリがあなたの考えであるとは限りません。テストとして、ファイルへのフルパスを試してください。 –

+1

ファイルはどこにありますか? –

+1

['if body]に' perror() 'を入れてください(http://en.cppreference.com/w/cpp/io/c/perror)。なぜファイルが開かれなかったのかを表示します。それが何がうまくいかないかを説明していない場合は、あなたの質問を編集し、 'perror'出力を追加してください。ここに誰かがメッセージを解釈するのに役立つでしょう。 – user4581301

答えて

0

open()には、開くファイルとモードの2つのパラメータがあります。モードは

など、あなたは、そのファイルをどうすなわちへの書き込み、から読み取ることができるものを指し open()を使用するときに6つの可能なモードがあります。入力の略 in

  1. パラメータ。 internal stream bufferは入力を有効にします。 (ファイルの読み込みに使用)
  2. パラメータoutは出力を表します。 same internal bufferは出力を有効にします。ファイルへの書き込みに使用します。
  3. パラメータbinaryを使用すると、すべての操作をテキストではなくバイナリで実行できます。
  4. パラメータateat endの略で、ファイルの最後に出力を開始します。
  5. パラメータappappendの略で、出力イベントはファイルの最後に発生します。
  6. パラメータtruncは、truncateを表します。開いている前のすべてのコンテンツは削除されます。

ファイルに書き込む場合は、outとしてください。

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

正しいモードを使用していない場合、この機能は失敗します。ご質問がございましたら、Google fstream::open()

関連する問題