免責事項:この質問は私のプログラミング宿題に直接関係しています。ファイルからデータを読み取る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;
}
私が遭遇してる主な問題は、私も基本的なレベルでファイル内のデータを読み、おろかにファイルを解析する方法を理解していないということです関連情報(プログラムの目的は、セミコロンで区切られたリストの情報を読み書きし、操作することです)。
この質問に加えて、私はもう2つのことについて少し混乱しています。まず、inalとoutの両方のストリームに対してdatalist.txtを開く必要があるのです。なぜなら何らかの理由で同じファイルを2回開く必要があるということがちょっと奇妙に感じられるからです。次に、私のインストラクターは文字列クラスを使用せず、その代わりにchar配列を使用します。私はこれの背後にある論理を理解しておらず、誰かが理由を詳しく述べることができればと思っています。
ハードな方法が何であるかを尋ねる背後にある「論理」は、ハードな方法がどのように機能するかを調査する機会があるためです。しかし、おそらくC++での 'char'配列の使用は不当な拷問であると主張しています。アセンブリ言語クラスのダイレクトメモリ操作を保存します。 –
あなたができることの1つは、** i ** fstreamと** o ** fstreamデカレーションを1つの** f **ストリームに変更することです – Tim
'while'ループで' readline'と一時的な文字列です。 – Blender