0

itemId 、 itemName 、 price を含むテキストファイルがあります

itemInfo.txt

1,samsung galaxy 4,1000
2,levis pants,100
3,jacket,100

私がやりたいことは、ユーザーがジャケットの価格を 100 から 50 に変更したい場合、プログラムはジャケットの ID (この場合は 3 行目) を検出し、ジャケットの価格を変更することです。または、ユーザーが 'levis pants' を 'tshirt' に変更したい場合は、ID (この場合は 2 行目) を検出し、その名前を変更します。

ファイルを1行ずつ読む方法を知っています。しかし、ファイルを1行ずつ読み取って、必要な出力を達成した後、どうすればよいかわかりません。お知らせ下さい。ありがとう

4

1 に答える 1

1

したがって、これを行うには2つの方法があります。

  1. 現在のファイルを新しい値で上書きします。これは、すべてのデータを読み込んでから、同じ形式で書き戻すことを意味します。これが最も簡単な方法です。ofstream を使用して同じデータを書き出すだけです。
  2. ofstream ライブラリでストリーム ポインタを使用し、このリソース (ヒント: seekp、tellp、および書き込み) を確認してください。これは、ファイル内のポイントに「移動」し、そのポイントから直接書き出します。これはより複雑ですが、より多くのことを行います。効率的な方法。

#1の例:

int rowCount = 0;
// read in file here and count the number of rows in the text file.

ofstream output;
output.open("itemInfo.txt", ofstream::out);

for (int i = 0; i < rowCount; i++) // 
    output << itemId[i] << "," << itemName[i] << "," << price[i] << endl;

#2の例: 私は気にすることはできません

于 2013-10-15T06:17:40.420 に答える