我有一个名为'matrixA'的文件;这是一个文本文件。它位于一个名为“assignments”的文件夹中。我在赋值文件夹中还有另一个名为main.cpp的文件。
ifstream myfile ("matrixA");
string linebuffer;
if (!myfile.is_open()){
cout << "error";
}
总是输出错误。
发生了什么事?为什么我不能打开文件?
答案 0 :(得分:1)
尝试使用matrixA的绝对路径。或者在文件夹分配中运行程序。
您可以通过调用getcwd来判断程序的运行位置。
答案 1 :(得分:1)
请参阅,这完全取决于您的可执行文件的位置。
如果它与matrixA
文件位于同一文件夹中,则只需提供ifstream myfile("matrixA");
。
但是如果你的可执行文件与matrixA
文件不在同一个文件夹中,那么最好为文件提供绝对路径,在你的情况下,代码应该是是:
ifstream myfile("/Users/jsuit/cx4220/cx4220/cx4220/assignments/matrixA");
始终建议给出打开文件的绝对路径,因为您不知道可以从哪个位置运行可执行文件。
答案 2 :(得分:1)
编译cpp文件后,您将获得一个可执行文件,可称为 main.exe 。我猜 main.exe 和 matrixA 不在同一个目录中,这就是为什么总是会出现输出错误。
尝试使用绝对路径或类似../matrixA
的内容。