0

連絡先のさまざまな詳細を含むテキスト ファイルがあります。基本的にはこんな感じ

John Doe 024587 7 月 24 日 在宅勤務 在宅勤務 Jane Doe 024584 8 月 25 日 勤務先勤務 勤務先勤務

ファイル内で「John Doe」または「Jane Doe」を検索できるようにしたいと考えています。

ファイルからコンテンツを読み取り、配列に格納することにしました。配列を検索する方法を知りたいです。このコードはそれをカットしていないようです。noOfContacts は、ファイル内の連絡先の数です。

          readFile.open("book.txt", ios::out);
          while (!readFile.eof())
          {
            cout << "Enter anything you wish to search" <<endl;
            getline(cin, searchString);

            for (int k = 0; k < noOfContacts; k++)
            {       
                        getline (readFile,name[k]);
                                readFile >> phone[k];
                getline(readFile,birth[k]);
                getline(readFile,address[k]);
                getline(readFile,workplace[k]);


                cout << name[k]<<endl;
                cout << phone[k]<< endl;
                cout << birth[k]<<endl;
                cout << address[k]<<endl;
                cout << workplace[k]<<endl;


                break;
            }
4

1 に答える 1

0

for ループがあるのはなぜですか? 次のようなことをする方が簡単ではないでしょうか:

 unsigned found = 0;

 cout << "Enter anything you wish to search" <<endl;
        getline(cin, searchString);

 while(!readFile.eof() && (found==0)){  
     getline(readFile,testString);

     found=testString.find(searchString);
 }

 if (found == 0) {
 cout << "String found!\n " << testString.c_str(); << endl;
 }
 else{
 cout << "String Not Found!\n";
 }

私はこのコードをテストしていませんが、うまくいけば、どちらに進むべきかのアイデアが得られるでしょう.

于 2013-04-12T14:02:31.420 に答える