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
文件所在的文件夹中。
还有什么问题?
答案 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,请尝试在strace
(strace myprog myoptions
)下运行程序。