2013-04-12 135 views
0

我有一個文本文件,具有不同的聯繫人詳細信息。 它基本上是這樣的如何允許用戶搜索C文件中的內容?

李四024587 7月24日工程從家庭家居李四 024584月25日在工作

從工作生活八月作品我希望能夠搜索「約翰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; 
      } 
+0

嗯,是啊,我沒有看到任何與輸入的內容比較... –

+0

我已經試過了工作的另一種方法。我將在這裏發佈一下 –

回答

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"; 
} 

我沒有測試此代碼,但希望它會給你的哪個方向走的想法。

+0

所以這是新的代碼。如果我定義字符串變量searchTerm,它將起作用。但是getline函數不起作用,所以我的用戶可以輸入一個搜索詞。 –

+0

這裏的鏈接到它https://github.com/olabinjo/C---contacts-project/blob/master/The%20search.md –