我的合作伙伴在文本编辑器中为我的一个项目编写了一堆代码,当我运行代码时,它完美运行..... 现在我已将所有代码复制并粘贴到qt创建者中,并且我有一个问题
stringstream ss;
string line;
ifstream myfile;
myfile.open("Instructors.txt");
if (myfile.is_open()){
while (getline(myfile,line)){
ss << line << ", ";
}
myfile.close();
}
else cout << "bad open" << endl;
上面是我的代码有问题的部分,我可以向你保证所有Instructors.txt确实在正确的文件中,但每次我们的代码到达这一点而不是打开文件我被扔到其他地方“糟糕的开放”为什么会这样?
答案 0 :(得分:1)
如果没有任何错误代码,很难说它可能是什么,你可以做的是用更有意义的东西(为你和你的客户)改进你的错误信息:
else cout << "Error opening file: " << strerror(errno) << endl;
strerror
(请参阅reference)函数返回由errno
宏捕获的给定错误代码的字符串。
否则你可以使用异常更多地使用C ++:首先为你的流启用它们:
myfile.exceptions(ifstream::failbit | ifstream::badbit);
然后抓住他们,一起是:
try
{
ifstream myfile("Instructors.txt");
myfile.exceptions(ifstream::failbit | ifstream::badbit);
while (getline(myfile, line))
{
ss << line << ", ";
}
myfile.close();
}
catch (ifstream::failure e)
{
cout << e.what() << endl;
}
答案 1 :(得分:0)
尝试重写文件名,可能包含来自不同编码的字符。
答案 2 :(得分:0)
仔细检查工作目录,很可能是在build文件夹中(可执行文件被删除)
在QtCreator中你可以通过转到项目并选择运行来解决这个问题。在那里,您将能够设置工作目录