无法打开 .txt 文件
Unable to Open .txt File
std::ifstream infile;
infile.open("example.txt");
if (!infile.is_open()) {
std::cout << "can't open" << std::endl;
}
我读到: 并尝试使用完整路径 infile.open("~/projects/example.txt");
文本文件位于 .cpp
/ .hpp
文件所在的同一文件夹中。
还有什么问题?
尝试"realpath ~/projects/example.txt",它会显示你文件的真实路径,然后在你的cpp中使用这个真实路径
我曾经在 Windows 上遇到过同样的问题。问题是实际文件名是 "example.txt.txt",但是 Window Explorer 配置(默认)隐藏文件扩展名。
一个简单的解决方案是使用 c++17 文件系统库。例如,current_path
将 return 正如其名称所承诺的那样。或者编写一个简单的函数来列出当前路径的内容(参见 cppreference 上的示例 https://en.cppreference.com/w/cpp/experimental/fs/directory_iterator )。或者创建一个具有相似名称的文件,例如__example__.txt
并查看它的创建位置以及文件系统管理器报告的名称。
如果这是 Linux,请在 strace
(strace myprog myoptions
) 下尝试 运行 您的程序。
std::ifstream infile;
infile.open("example.txt");
if (!infile.is_open()) {
std::cout << "can't open" << std::endl;
}
我读到:infile.open("~/projects/example.txt");
文本文件位于 .cpp
/ .hpp
文件所在的同一文件夹中。
还有什么问题?
尝试"realpath ~/projects/example.txt",它会显示你文件的真实路径,然后在你的cpp中使用这个真实路径
我曾经在 Windows 上遇到过同样的问题。问题是实际文件名是 "example.txt.txt",但是 Window Explorer 配置(默认)隐藏文件扩展名。
一个简单的解决方案是使用 c++17 文件系统库。例如,current_path
将 return 正如其名称所承诺的那样。或者编写一个简单的函数来列出当前路径的内容(参见 cppreference 上的示例 https://en.cppreference.com/w/cpp/experimental/fs/directory_iterator )。或者创建一个具有相似名称的文件,例如__example__.txt
并查看它的创建位置以及文件系统管理器报告的名称。
如果这是 Linux,请在 strace
(strace myprog myoptions
) 下尝试 运行 您的程序。