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(這是「input.txt中」)。我嘗試輸入「i.txt」以及不輸入任何內容(默認爲「input.txt」),並且在這兩種情況下,我的程序都會調用die函數(只輸出錯誤消息並退出程序)。可以輸入C++
我的文件和我的.exe文件在同一個文件夾中,所以我不確定爲什麼會發生這種情況。這是什麼原因造成的,我該如何解決?
編輯:我應該提到的第二個死亡的電話是執行,而不是第一個。也就是說,該文件無法打開輸入。
我從窗口10運行此Visual Studio Express的2013(調試)
你還沒有告訴我們關於你的操作系統的任何信息(或者可能是帶有.exe的Windows),或者你如何啓動程序。通常的原因是系統「當前目錄」不是你期望的系統。 –
我不知道C++,但是在C中,你會打印'strerror(errno)'來獲得打開失敗的原因。 – melpomene
@BoPersson道歉,在原文中增加了更多信息。 – MV94