#include <iostream>
#include <iomanip>
#include <cmath>
#include <fstream>
#include <string>
#include <cstdlib>
using namespace std;
int main() {
ifstream input_file("DataStuff.txt", ios::in);
//trying to open the notepad file named DataStuff.txt
if(!input_file){
cerr << "Error" << endl; exit(1);
}
else{
cout << "good 2 go" << endl;
}
}
答案 0 :(得分:4)
试试这个:
#include <cstring>
#include <fstream>
#include <iostream>
int main() {
std::ifstream input_file("DataStuff.txt", ios::in);
if (input_file) {
std::cout << "ok\n";
} else {
std::cerr << "error: " << strerror(errno) << "\n";
return 1;
}
return 0;
}
输出应该让你知道发生了什么。很可能文件不存在或权限不正确。
进一步说明:如果文件无法打开,则std::ifstream
的构造函数会将errno
设置为一个值,指示错误是什么。您可以使用strerror()
函数(在<cstring>
中定义)来访问描述错误的字符串。
答案 1 :(得分:0)
&#34;打开文件&#34; 的使用意味着文件:"DataStuff.txt"
与您的程序之间建立了连接,输入流,{ {1}}名为ifstream
的对象,允许您从文件中读取。
文件无法打开的一个可能原因是它不存在(包括错误的名称)。
另一个原因是文件权限是否允许访问,例如,如果您不是文件的所有者并且设置为私有。
要获得有关实际原因的更多信息,您应该熟悉流rdstates
并将它们集成到您的代码中,以在您尝试打开它后检查流的状态。