2016-07-24 38 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()