无法打开输入文件

Cannot open input file

本文关键字:输入 文件      更新时间:2023-10-16

我正在编写一个基本程序,它将从文本文件中读取整数列表,并将文件中最小的整数和最大的整数输出到屏幕。我确保文本文件与源代码文件在同一个文件夹中,并且文件的名称与我在代码中对它的称呼相同。无论如何,程序无法打开文件。我该如何解决这个问题?

这是我的程序:

 #include <iostream>
 #include <fstream>
 #include <cstdlib>
 using namespace std;
int main()
{
    ifstream inStream;
    inStream.open("infile.txt");
    if (inStream.fail())
    {
        cout<<"Input file opening failed.n";
        system("pause");
        exit(1);
    }
    int arr[100], i = 0;
    while(!inStream.eof())
    {
        inStream>>arr[i++];
    }
    int min = arr[0];
    for (int index = 1; index <= i; index++)
    {
        if (arr[index] < min)
        {
            min = arr[index];
        }
    }
    int max = arr[0];
    for (int index = 1; index <= i; index++)
    {
        if (arr[index] > max)
        {
            max = arr[index];
        }
    }
    cout<<"The smallest number is "<<min<<endl;
    cout<<"The largest number is "<<max<<endl;
    inStream.close();
    system("pause");
    return 0;
}

如果您试图打开"C:SomeDirectoryinfile.txt",这将是一个绝对路径。这与"infile.txt"相反,后者被称为相对路径。这就引出了一个问题,"它相对于哪里?"它相对于"当前工作目录"或CWD。一般来说,CWD被设置为可执行文件所在的位置,但它不必如此!事实上,如果您拖放一个文件到您的可执行文件,CWD将是您从哪里拖放文件的位置。或者,如果你在Visual Studio中运行并在IDE中启动代码(通过点击按钮或使用F5), CWD将不在可执行文件所在的位置。

简短的回答是,您通常希望使用绝对路径。当然,在某些情况下,相对路径是有意义的,但是您必须真正了解您的程序是如何被使用的,以及CWD在哪里,这样才有用。对于您的情况,我会坚持使用绝对路径。