我在打开文件进行阅读时遇到了麻烦,我无法弄清楚我做错了什么,也许我的路径出了问题,但我不知道。
/*
output:
Where is the conversion table ?
/Users/awiebe/Documents/Langara\ Assignments/CPSC1160/CURRENCYCODES.txt
Unable to open file
*/
StringFloatMap readFile(string path)
{
//fstream filestr ("test.txt", fstream::in | fstream::out);
ifstream filestr;
const char* cPath = path.c_str();
filestr.open(cPath);
if (filestr.is_open())
{
filestr.close();
}
else
{
cout << "Unable to open file" << endl;
}
/*…*/
}
答案 0 :(得分:1)
您无需转义路径中的空格字符(例如,您可以删除文件名中的\)。
答案 1 :(得分:0)
不需要cPath变量(但可能适合调试)
我建议打印失败消息。添加
#include <cstring>
#include <cerrno>
和
cout << "Unable to open file:" << errno << ':' << strerror(errno) << std::endl;
答案 2 :(得分:0)
摆脱“\”并给他路径: e.g:
/ Users / awiebe / Documents / Langara Assignments / CPSC1160 / CURRENCYCODES.txt
由于您使用字符串类,因此不需要为空格使用转义序列。