Everthingをf < < "文字列" < < TEMP_INT < <てendlまでうまくいく全体の出力を書いていない動作します。声明 は異なるopenmodesと異なる結果を取得するには、いずれかのすべてで書いたり、「NumberSaves」fstreamのは、<<
unsigned int temp_int = 0;
fstream f("resources/saveData/Player/savelog.txt");
if (!f)
{
cout << "error accessing savelist" << endl;
}
else
{
string skip;
std::stringstream iss;
string line;
readVarFromFile(f, iss, skip, line, { &temp_int }); //check how many saves currently
temp_int += 1; //increment number of saves by 1
f.seekp(ios_base::beg);
cout << "Write position: " << f.tellp() << endl; //check stream is at beginning
f << "<NumberSaves>" << temp_int << endl; //truncate <NumberSaves> 'x' with <NumberSaves> 'x + 1'
cout << "Write position: " << f.tellp() << endl; //position suggests the entire string has been written, only two characters have been
if (!f)
{
cout << "ERROR";
}
f.seekp(ios_base::end);
f << currentPlayer->getName(); //append players name to end of file
}
所望の出力の最初の2つの文字を書き込みしません
NumberSaves 2
はプレイヤー
を以下のようです anotherplayer
電流出力
ニュー
プレーヤー
「readVarFromFile()」とは何ですか? [MCVE]を提供してください。 –
バイナリモードで開いたファイルには、ファイル内の位置を探すことが最も適していることを理解してください。ファイルがテキストモードで開かれている場合、改行や改行が行われているため、 'seekp'や' tellp'などを使って望む結果を得ることはできません。 – PaulMcKenzie
これは問題の一部ではない機能ですが、混乱の原因になった場合はごめんなさい –