私がしたいこと:
レコードをファイルに保存します。これらのレコードには 2 つのことがあります。
time_t rt; //which stores the time the record was entered by the user
これに伴い、1 つの文字列を保存したいと考えています。でも紐の長さはわかりません。
実行時に決定され、ユーザーが入力する文字数によって異なります。
何をする必要がありますか(私によると):
私は見当もつかない。動的メモリ割り当てについては知っていますが、これをそのような問題に適用する方法がわかりませんでした。
私が試したこと:
ユーザーから一度に1文字ずつ取得して、テキストファイルに保存しようとしました(一時的に)。
ofstream fileObject;
fileObject.open("temp.txt");
for(int j=0;;j++)
{
ch = _getche();
if( ch == 13) break; //user has pressed the return key
fileObject<<ch;
}
次に、次のコードを使用してファイルのサイズを確認しました。
fileObject.seekp(0,ios::end);
long pos = fileObject.tellg(); //this is the size of the file
次に、ファイルのサイズの動的配列を宣言しました。
char * entry;
entry = new char[pos]
ファイルを「out」モードで閉じ、「in」モードで再度開きました。
fileObject.close();
ifstream fout;
fout.open("temp.txt"); //this is the name of the text file that i had given
次に、文字ごとに、テキスト ファイルの内容を文字配列にコピーしました。
for(int i=0;i<pos;i++)
fout>>info[i];
info[i] = '\0';
fout.close();
しかし、今、私はさらに何をすべきかわかりません。
手伝ってほしいこと:
このレコードをクラス オブジェクトとしてバイナリの「.dat」ファイルに書き込む方法を教えてください。
私の仕様:
Windows XP SP3
IDE: Visual C++ 2010 Express