0

C++ でのファイル検索に関するコードを修正する方法を教えてください。

サンプル テキスト (test.txt):

name: jason statham
age: 19

name: jeremy renner
age: 17

name: kim tak gu
age: 18

name: donnie yen
age: 20

これは私のコードです:

#include<conio.h>
#include<iostream>
#include<string>
#include<fstream>
#include<istream>
#include<windows.h>

void search() //function only of my main program
{
string name="", searchname;
string age="";

ifstream search_sample("test.txt");

cout<<"Enter name to be search: ";
cin.ignore();
getline(cin, searchname);

size_t pos;
while(search_sample.good())
{
    getline(search_sample, name);
    getline(search_sample, age);
    pos=name.find(searchname);

        if(pos!=string::npos)
            {
                cout<<"\nRecord Found\n\n";
                cout<<name<<"\n";
                cout<<age<<"\n";
                break;
            }
}   
getch();
main();
}

jason statham と kim tak gu (変な位置にいる人) を検索すると、それらが見つかり、コマンド プロンプトに表示されます。 ? 前もって感謝します。

4

2 に答える 2

1
getline(search_sample, name);
getline(search_sample, age);
getline(search_sample, blank_line);

改善のようです。

于 2013-09-22T15:13:38.137 に答える
1

問題は、空の行も行であることです。最初の人はnameageが正しく読み取られますが、ループの次の反復では、空行が読み取らnameれるため空になりますgetline(search_sample, name)

于 2013-09-22T15:07:51.307 に答える