免責聲明:這個問題直接關係到我的編程作業。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