0

可能重复:
无法读取使用 ifstream 加载的文件

以下文件的输出是:00100。这表明我设置了故障位。问题是我无法弄清楚为什么要设置它。有人有一些见解可以分享吗?

#include <fstream>
#include <iostream>
int main()
{

    std::ifstream paths_in("C:\\Users\\bill hank\\AppData\\bot_plugins\\directory_listing.txt", std::ios::in);
    std::cout << paths_in.good();
    std::cout << paths_in.is_open();
    std::cout << paths_in.fail();
    std::cout << paths_in.eof();
    std::cout << paths_in.bad();
    while (paths_in.good())
    {
        char q[5000];
        paths_in.getline(q, 5000);
        std::cout << q;
    }
    paths_in.close();
    std::cout << "Press ENTER to continue...";
    std::cin.ignore( std::numeric_limits<std::streamsize>::max(), '\n' );
    return 0;
}

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

4

2 回答 2

2

从我的角度来看,您的代码没有任何问题,因此您的环境中一定有问题:

  • 你检查过文件位置吗?
  • 你确定你真的有读取文件的权限吗?
  • 该文件是否已被另一个进程以独占模式打开(例如,您可以使用进程资源管理器检查此文件)?
于 2010-12-25T20:20:56.613 回答
0

写一个对 CreateFile 的调用,看看你得到了什么错误代码。

于 2010-12-25T20:26:21.183 回答