无法打开输入C ++文件

时间:2015-10-05 20:49:30

标签: c++

string iName, oName; //input and output file names, respectively
double avgIn;

cout << "Enter file name for input: ";
getline(cin, iName) || die("Could not read input file name");
if (iName.empty())
    iName = DEF_IN_NAME;

ifstream fin;
fin.open(iName);
if (!fin) die("Could not open " + iName + " for input\n");

在我的代码的这一部分中,我输入一个字符串作为要打开的输入文件的名称,如果没有输入任何内容,我将其设置为DEF_IN_NAME(这是&#34; input.txt&#34;) 。我试过输入&#34; i.txt&#34;以及输入任何内容(默认为&#34; input.txt&#34;)并且在这两种情况下我的程序都调用die函数(只输出错误消息并退出程序)。

我的文件与我的.exe文件位于同一文件夹中,所以我不确定为什么会这样。造成这种情况的原因是什么?如何解决?

编辑:我应该提到第二次执行死亡,而不是第一次。也就是说,无法打开文件进行输入。

我是从Visual Studio Express 2013(调试)

在Windows 10上运行的

1 个答案:

答案 0 :(得分:0)

如果未指定要读取的文件的显式路径,则运行时库将默认为进程当前工作目录。如果在调试器中运行程序,则当前工作目录将是项目目录,而不是可执行文件链接的位置。