0

ベクトル内の特定の数値を置き換えるコードを書き込もうとしています。したがって、ベクトルに 12345 のようなものが含まれていて、誰かが要素 [4] を 0 に置き換えたり変更したりすると、ファイル 12340 に書き出されます。

これまでのところ、以下のコードでは、ファイルの最初の数字のみを置き換えることになります。そして使用して

theFile << newIn.at(count) << endl;

それ以外の

theFile << *i << endl;

動作しないようです。

特定のベクター要素を変更して、ベクター全体をファイルに正しく書き出すにはどうすればよいですか?

//change/replace/delete
cout <<  "What would you like to replace it with?" << endl;
cin >> newIn;
fileInfo.at(count) = newIn;

//open
fstream theFile("numbers.txt");

//write changes
ofstream thefile;
for(vector<char>::const_iterator i = fileInfo.begin(); i != fileInfo.end(); i++)
{
    theFile << *i << endl;
}
4

2 に答える 2

0

fileInfo[count] = newIn; を使用してみてください。

それが機能しない場合は、健全性チェックとして、最初にベクトルを正しく読み取っていることを再確認し、出力ストリームへの書き込みに加えて、cout を使用してベクトルの状態を出力する必要があります。

于 2013-10-28T22:30:19.173 に答える