在下面的代码中,我只是尝试打开一个文件并打印它的内容:
#include <iostream>
#include <fstream>
using namespace std;
int main() {
std::ifstream fin;
fin.open("ride");
string line;
while (fin >> line)
{
std::cout << "I am here" << std::endl;
cout << line << endl;
}
fin.close();
return 0;
}
然而无论我做什么,这个程序都没有进入while循环....为什么?
我正在运行Ubuntu 14.04,该文件名为'ride',它位于我的主目录中,我的源文件恰好是'main.cpp'也位于我的主目录中,此外还有光标放在文件'ride'的开头。我已经尝试将文件名更改为'ride.txt'并使用绝对路径,但似乎没有任何效果。
答案 0 :(得分:1)
源文件所在的位置无关紧要,因为源文件未被执行。
file
必须位于您运行程序的shell的当前工作目录中。
此外,如果您尝试过绝对路径并且仍然无法正常工作,那么您的权限就不足。
您发布的代码没有任何问题。
答案 1 :(得分:0)
程序的当前工作目录可能不是包含文件的目录。
为防止这种情况,您可以:
chdir
在运行时设置当前工作目录。