如何允许用户搜索文件中的内容?

How Do I allow a user search for contents in a file in C?

本文关键字:文件 何允许 用户 搜索      更新时间:2023-10-16

我有一个包含不同联系人详细信息的文本文件。就像这样

无名氏7月24日在家工作在家生活无名氏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;
            }

为什么有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";
 }

我还没有测试过这段代码,但希望它能给你一个思路。