以下文件的输出为:00100。 这向我表明设置了failbit。问题是我无法弄清楚为什么设置它。有人有分享的见解吗?
#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
答案 0 :(得分:2)
从我的角度来看,您的代码没有任何问题,因此必须在您的环境中出错:
答案 1 :(得分:0)
写一个对CreateFile的调用,看看你得到的错误代码。