0

キーボードを使用してユーザーの効率をテストするための簡単なプログラムを作成しようとしています (今のところ、1 分あたりの単語と精度のみ)。ただし、ファイル操作の部分に問題があります。次のように、(簡単に編集できるように) .txt ファイルに保存された単語のリストが必要です。

    cheese
    computer
    photograph
    download
    etc...

.txt ファイル全体をバイナリ ファイルに変換し、各単語を .dat ファイルのエントリに変換できるようにしたいのですが、fstream が .txt からデータを読み取る方法を理解するのに苦労しています。ファイル。バイナリ ファイルのエントリに追加できるように、fstream を使用してリストから単語を読み取る最も簡単な方法は何でしょうか?

4

2 に答える 2

1

ダスクワフが言ったように、延長は何の意味もありません。ファイルは、ASCII 形式またはバイナリ形式のいずれかで保存されます。

ファイルが ASCII ファイルの場合、すべてのバイトは対応する ASCII として格納されます。バイナリ ファイルは単なる生データであり、変換せずに保存されます。あなたの質問に関する限り、次のことができます。

  1. 通常どおりに入力ファイルを読み取ります (ASCII)
  2. fwrite で別のファイルに書き戻す
于 2012-05-25T20:18:44.187 に答える
-1

fstreamからの読み取りは、実際には非常に簡単です。各行は、«fstream.is_good»が«false»を返すまで«getline»によって読み取られます。また、cplusplus.comのチュートリアルもご覧ください。これはそれを行う必要があります:

#include <fstream>
#include <iostream>
#include <string>

using namespace std;

int main() {
  fstream myfile;
  string line;
  myfile.open("sample.txt");
  if  ( myfile.is_open() ) {
    while ( myfile.good() ) {
      getline( myfile, line);
      // conversion and output function goes here
      // this example just prints it to stdout
      cout << line << endl;
    }
    myfile.close();
  } else {
    cerr << "could not open file" << endl;
  }
  return 0; 
}
于 2012-05-25T21:06:52.747 に答える