2012-11-20 68 views
3

我需要檢查單詞是否存在於字典文本文件中,我想我可以使用strcmp,但實際上我並不知道如何從文檔中獲取一行文本。這是我當前的代碼,我堅持。檢查文本文件中是否存在單詞C++

#include "includes.h" 
#include <string> 
#include <fstream> 

using namespace std; 
bool CheckWord(char* str) 
{ 
    ifstream file("dictionary.txt"); 

    while (getline(file,s)) { 
     if (false /* missing code */) { 
      return true; 
     } 
    } 
    return false; 
} 

回答

2
char aWord[50]; 
while (file.good()) { 
    file>>aWord; 
    if (file.good() && strcmp(aWord, wordToFind) == 0) { 
     //found word 
    } 
} 

您需要輸入操作員讀單詞。

+1

測試瓦特/ [Lopadotemachoselachogaleokranioleipsanodrimhypotrimmatosilphioparaomelitokatakechymenokichlepikossyphophattoperisteralektryonoptekephalliokigklopeleiolagoiosiraiobaphetraganopterygon](http://en.wikipedia.org/wiki/Lopado%C2%ADtemacho%C2%ADselacho%C2%ADgaleo%C2%ADkranio%C2%ADleipsano%C2%ADdrim %C2%ADhypo%C2%ADtrimmato%C2%ADsilphio%C2%ADparao%C2%ADmelito%C2%ADkatakechy%C2%ADmeno%C2%ADkichl%C2%ADepi%C2%ADkossypho%C2%ADphatto%C2%ADperister%C2 %ADalektryon%C2%ADopte%C2%ADkephallio%C2%ADkigklo%C2%ADpeleio%C2%ADlagoio%C2%ADsiraio%C2%ADbaphe%C2%ADtragano%C2%ADpterygon)! – HostileFork

2

std::string::find完成這項工作。

#include <iostream> 
#include <fstream> 
#include <string> 

using namespace std; 


bool CheckWord(char* filename, char* search) 
{ 



    int offset; 
    string line; 
    ifstream Myfile; 
    Myfile.open (filename); 

    if(Myfile.is_open()) 
    { 
     while(!Myfile.eof()) 
     { 
      getline(Myfile,line); 
      if ((offset = line.find(search, 0)) != string::npos) 
      { 
      cout << "found '" << search << " \n\n"<< line <<endl; 
      return true; 
      } 
      else 
      { 

       cout << "Not found \n\n"; 

      } 
     } 
     Myfile.close(); 
    } 
    else 
    cout<<"Unable to open this file."<<endl; 

    return false; 
} 


int main() 
{ 

    CheckWord("dictionary.txt", "need"); 

    return 0; 
} 
+0

這隻會檢查它是否在第一行中找到,如果在文件末尾找到您要搜索的單詞,該怎麼辦?你會如何解決上面的代碼? – unixcreeper

+0

@unixcreeper正如我所看到的,它檢查所有行,如果它在一行中發現它說基金如果不是「未找到」,並再次運行搜索直到EOF(文件結束)。 –