无法打开.txt文件

时间:2020-02-20 03:54:15

标签: c++ fstream

std::ifstream infile;   
infile.open("example.txt");

if (!infile.is_open()) {        
   std::cout << "can't open" << std::endl;  
}

我读了这篇文章:unable to open file stream c++,并尝试使用完整路径infile.open("~/projects/example.txt");

文本文件位于.cpp / .hpp文件所在的文件夹中。

还有什么问题?

2 个答案:

答案 0 :(得分:1)

尝试“ realpath〜/ projects / example.txt”,它将显示文件的真实路径,然后在cpp中使用该真实路径

答案 1 :(得分:1)

我曾经在Windows上遇到过同样的问题。问题是实际文件名是“ example.txt.txt”,但是(默认)将Windows资源管理器配置为隐藏文件扩展名。

一个简单的解决方案是使用c ++ 17文件系统库。例如,current_path将返回其名称所承诺的内容。或编写一个简单的函数来列出当前路径的内容(请参阅cppreference,https://en.cppreference.com/w/cpp/experimental/fs/directory_iterator上的示例)。或创建一个类似名称的文件,例如__example__.txt,然后查看文件的创建位置以及文件系统管理员报告的名称。

如果这是Linux,请尝试在stracestrace myprog myoptions)下运行程序。