2016-02-23 2 views
-10

Попытка сопоставить слова из пользовательского ввода со строкой из текстового файла. В основном текстовый файл представляет собой одну строку, содержащую множество слов, которая действует как «словарь». Когда этот код запущен, он выходит из строя после открытия файла. (помечено знаком ****) Как я могу изменить его, чтобы правильно сопоставлять строки из пользовательского ввода со строками из текстового файла.Как искать слова в строке в текстовом файле?

Любая помощь будет оценена, спасибо.

const int Size = 81;    // 80 characters for the line + 1    for the '\0' 
const int MaxNumberOfWords = 10; 

int main() { 
    char input[81], temp[81], fin[81]; 
    printf("Input a string\n"); 
    fgets(input, 81, stdin); 
    int len = strlen(input); 


    char *div; 
    div = strtok(input, " "); 
    while (div != NULL) { 
    printf("%s\n",div); 
    div = strtok(NULL, " "); 


    ifstream inStream;       // declare an input stream for my use 
    char theWords[ MaxNumberOfWords][ Size]; // Array to store words from input line 
    int wordRow = 0;       // Row for the current word 
    char wordToLookup[ Size];     // word to lookup 
    bool wordWasFound = false;     // flag to track whether or not word is found 
    char c;          // stores return character after input 

    inStream.open("C:\\Users\\dqiao4\\Desktop\\Dev-Cpp\\dictionaryMax6.txt"); 
    assert(! inStream.fail()); // make sure file open was OK 


    //*****this is where the code crashes 
    while (inStream >> theWords[ wordRow]) { 
     wordRow++; 
    } 



    for (int i=0; i<wordRow; i++) { 
     // See if this word matches 
     if (strcmp(div, theWords[ i]) == 0){ 
     wordWasFound = true; 
     break;  // quit looking 
     } 
    } 
    } 
} 
+3

Пожалуйста, покажите ваши исследования усилия до времени. Сначала прочитайте страницу [Ask]. –

+2

Но каков ваш * конкретный вопрос? Если вы ищете кого-то, чтобы написать код для вас, тогда вы пришли не туда. Попробуйте написать код самостоятельно. Если после настоящих усилий у вас все еще есть трудности, покажите свой код и задайте * конкретный * вопрос. – kaylum

+0

SO не работает, как будто .... сделайте что-то себе сначала .. –

ответ

0

INT основной() {

char input[81];int i=0,j=0,k=0; 
cout<<"Input a string "; 
while(i<=80){ 
input[i]=getch(); 
cout<<input[i]; 
if(input[i]=='.') 
break;  
i++; 
} 
ifstream File("C:\\User\\New.txt"); 
string line; 
if(File) 
{ 
    while(getline(File, line)) 
    { 
     char buff[1024]; 
     strcpy(buff, line.c_str()); 
     while(j<35){ 
      k=0; 
      while(k<i){ 
      if(buff[j]==input[k]) 
      { 
       int j1=j,k1=k; 
       while(true){ 
        if(buff[j1]==input[k1]) 
        { 
         if(input[j1]=='.'){ 
          cout<<"match"; 
          return 0; 
         } 
         j1++;k1++; 
        } 
        else 
        break; 
       } 
      }k++; 
     }j++; 
     cout<<endl; 
    } 
} 

}}

Смежные вопросы