相对路径中的错误

Errors in relative path

本文关键字:错误 路径 相对      更新时间:2023-10-16

所以这是一个简单的C++程序,用于读取文件并显示其内容。我的目录结构如下

项目目录|数据___|     ||     数据.txt|程序1.cpp

和程序:

#include <iostream>
#include <fstream>
using namespace std;
int main () {
    char char1;
    fstream data; // Because I wanna to write to this file later.
    data.open("../Data/data.txt",ios::out | ios::in);
    if (data.is_open()) {
        for (int i = 0; !data.eof(); ++i) {
            data.get(char1);
            cout << char1 << endl;
        }
        data.close();
    }
    return 0;
}

所以目前我的程序运行良好...但是当我使用时:

data.open("Data/data.txt",ios::out | ios::in);

该程序不起作用。为什么会这样?理想情况下,上述代码段应该可以工作,因为 Data 文件夹与我的 cpp 文件位于同一目录中。

data.open("../Data/data.txt",ios::out | ios::in);

通过使用 2 个点,我们将返回一个目录,而 Data 文件夹不存在。

那么为什么程序使用 2 个点工作呢?

查看您的目录结构,我发现您的程序 1.cpp 和数据.txt都在同一个"数据"文件夹中。由于您已经在数据文件夹中,"数据/数据.txt"会查找另一个数据文件夹。在 UNIX 中,".." 表示以前的目录。因此,当您使用".."时,您会转到"项目目录",其中包含一个"数据"文件夹。这就是为什么data.open("../data/data.txt",ios::out |iOS::in(正在工作。您也可以尝试使用以下方法: data.open("data.txt",ios::out | ios::in);