gpt4 book ai didi

C++从文件中读取数据

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:57:08 25 4
gpt4 key购买 nike

免责声明:这个问题与我的编程作业直接相关。

我的 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,出于某种原因,我不得不打开同一个文件两次感觉很奇怪。其次,我的导师不希望我们使用字符串类,而是使用字符数组。我不明白这背后的逻辑,希望有人能详细说明为什么(或者可能给出反驳理由)字符串不好。

最佳答案

您不会同时打开文件进行读取和写入。好吧,不是两个不同的对象,它们无论如何都不了解彼此。您要么使用 std::fstream(可以同时进行读写),要么先读取,关闭文件,处理数据,然后再写入。

还有:

//have to use char arrays as per instructor. no strings

我想你可能想找一个更好的教练。使用裸露的、基于堆栈char* 数组不是任何称职的 C++ 老师应该认可的。

这就是缓冲区溢出的来源。

关于C++从文件中读取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6475596/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com