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上运行的答案 0 :(得分:0)
如果未指定要读取的文件的显式路径,则运行时库将默认为进程当前工作目录。如果在调试器中运行程序,则当前工作目录将是项目目录,而不是可执行文件链接的位置。