所以这是一个简单的C ++程序,用于读取文件并显示其内容。 我的目录结构如下
Project Directory | Data___ | | | data.txt | program1.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点?
答案 0 :(得分:0)
查看你的目录结构,我看到你的program1.cpp和data.txt都在同一个&#34; Data&#34;夹。由于您已经在Data文件夹中,&#34; Data / data.txt&#34;寻找另一个Data文件夹。在UNIX&#34; ..&#34;表示上一个目录。所以当你使用&#34; ..&#34;你去了项目目录&#34;,其中包含一个&#34;数据&#34;夹。这就是data.open(&#34; ../ Data / data.txt&#34;,ios :: out | ios :: in)正常工作的原因。您还可以尝试使用以下内容:
data.open("data.txt",ios::out | ios::in);