无法在C ++中打开文件

时间:2012-01-11 05:34:56

标签: c++ io ifstream

我在打开文件进行阅读时遇到了麻烦,我无法弄清楚我做错了什么,也许我的路径出了问题,但我不知道。

/*
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;
    }
/*…*/
}

3 个答案:

答案 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

由于您使用字符串类,因此不需要为空格使用转义序列。