免责声明:这个问题直接关系到我的编程作业。C++从文件读取数据
我的C++任务包括打开一个.txt文件,对其执行一堆操作,然后保存.txt文件。问题是,我很难理解读取和写入文件的基本概念。
我的代码:
#include <iostream>
#include <fstream>
using namespace std;
int main() {
ifstream inData;
ofstream outData;
// is it necessary to open datalist.txt for both the in and out streams?
inData.open ("datalist.txt");
outData.open("datalist.txt");
if (inData.is_open()) {
cout << "yay, i opened it\n"; // this outputs as expected
char fileData[100]; // have to use char arrays as per instructor. no strings
inData >> fileData; // store text from datalist.txt in fileData char array
cout << fileData; // nothing happens here... why?
outData << "changing file text cause I can"; // this works just fine.
}
else {
cout << "boo, i couldn't open it";
}
inData.close();
outData.close();
return 0;
}
我现在遇到的主要问题是,我不知道如何在连基层一个文件中读取数据,更不用说解析文件到相关信息(程序的目的是读取,写入和操作以分号分隔的列表中的信息)。
除了这个问题,我还对另外两件事有些困惑。首先,是否有必要为输入和输出流打开datalist.txt,出于某种原因,我感到很奇怪,我必须打开两次相同的文件。其次,我的教师不希望我们使用字符串类,而是使用char数组。我不明白这背后的逻辑,并希望有人能详细说明为什么(或者可能反驳为什么)字符串是坏的。
背后的“逻辑”要求您以艰难的方式做一些事情,以便您有机会调查困难方式的工作方式。然而,我可能会认为在C++中使用'char'数组是没有根据的折磨。保存汇编语言类的直接内存操作。 –
您可以做的一件事是将** i ** fstream和** o ** fstream decalration更改为单个** f **流 – Tim
您可以通过'while'循环中的行逐行读取文件,方法是使用' readline'和一个临时字符串。 – Blender