当我尝试使用ifstream
读取文件时,我在Windows 10 Enviroment中的行为非常奇怪。
我正在使用以下简单代码:
#include "stdafx.h"
#include <fstream>
#include <iostream>
#include <string>
int main()
{
std::ifstream ifs("C:\Users\dd\Desktop\test.txt");
if(ifs.is_open())
{
std::string line;
while(std::getline(ifs,line))
{
std::cout << line << "n";
}
}
else
{
std::cout << std::strerror(errno) << "n";
}
return 0;
}
显然文件存在。
当我尝试读取文件.txt
时,我会得到:
权限拒绝
我以管理员的身份运行Visual Studio,我有权阅读该文件,因为我能够使用Notepad 进行打开。
如果更改文件扩展名,例如.test
,我可以正确读取文件内容,并且一切正常。
我卸载,然后重新安装VS2008,VS2015和所有C 重新分布,但没有任何变化。任何帮助都非常感谢!
也许您的文件未命名test.txt
。您是否检查了您的文件真的名为test.txt
而不是test.txt.txt
(带有隐藏的扩展名(?
尝试在命令提示中列出文件,以查看实际文件名是什么:CMD>
cd C:UsersddDesktop
dir | findstr test
hothother可能性:
test.txt
可能会使用另一个外观的字母语言(在您的代码或实际文件名中(。在您的代码中未正确引用斜线(例如
C:Users\
而不是C:\Users\dd\
(。尝试更改为正向斜线。