c-无法读取由ifstream加载的文件

void bot_manager_item::create_games()
{
    games.clear();
    std::ifstream paths_in("C:\\Users\\bill hank\\Documents\\bot_plugins\\directory_listing.txt", std::ios::in);
    while (paths_in.good())
    {
        send_message("The path was good.");
        char q[5000];
        paths_in.getline(q, 5000);
        send_message(q);
        games.push_back(qanda(q));
    }
    paths_in.close();
}

我正在加载的文件存在,还有什么问题吗? path_in.good一直失败.

编辑:我想通了.哇,我为这个答案感到烦恼.基本上Windows可以让您说是否要显示文件扩展名.此Windows安装设置为不应显示该扩展名.因此,当我一次又一次地检查文件时,我看到的是:directory.txt,并认为这意味着该目录一切正常,而实际上文件名是directory.txt.txt

解决方法:

如果paths_in.good()继续失败,则意味着已设置某些流错误标志(坏位,eofbit或failbit).

> eofbit-已到达文件末尾
> badbit-流缓冲区发生错误,例如内存不足或流缓冲区内部发生异常
> failbit-达到了eof之外的其他错误

为了找出发生了什么,您需要首先检查设置了哪个错误位,然后再查找有关特定错误的详细信息以及可能导致该错误的原因.

上一篇:C ifstream从linux到arduino


下一篇:c-使用ifstream将二进制数据读入struct