0

テキストファイルから読み取りたいのですが、ファイルの形式は

Method 1
Method 2
Insert 3 "James Tan"

現在、ifstream を使用してテキスト ファイルを開いて項目を読み取っていますが、>> を使用して行を読み取ると、名前が「James Tan」として完全に読み取られません。以下にコードと出力を添付します。

ifstream fileInput; 

  if(fileInput.is_open()){
       while(fileInput.good()){
  fileInput >>methondName>>value>>Name;
    ......

出力

methodName = Method, Method, Insert
value = 1, 2, 3 (must be a usigned integer)
Name = James

行と内容の読み取りを処理するためのより良い方法は何ですか。getlineについて教えてもらいました。しかし、getline は 1 語ずつではなく、完全に行として読み取られることを理解しています。

次に fstream は本当に速いですか?. 原因として、500000 行のデータを処理したいのですが、ifstream が高速でない場合、他にどのようなオプションがありますか。

これについてアドバイスをください。

4

1 に答える 1

3

方法1
方法2
インサート3「ジェームスタン」

私はあなたがファイルがいくつかの行で構成されていることを意味すると思います。各行は、「メソッド」または「挿入」という単語で始まり、いずれの場合も数字が続きます。さらに、「挿入」で始まる行の最後には複数の単語の名前が付いています。

そうですか?もしそうなら、試してみてください:

ifstream fileInput("input.txt");
std::string methodName;
int value;
while ( fileInput >> methodName >> value ) {
  std::string name;
  if(methodName == "Insert")
    std::getline(fileInput, name);

  // Now do whatever you meant to do with the record.
  records.push_back(RecordType(methodName, value, name); // for example
}
于 2013-02-13T17:29:50.387 に答える