2015-09-15 3 views
0

Я немного неясен относительно того, как функционируют функции ifstream. Я искал, но не могу найти конкретного ответа на этот вопрос.ifstream - Перейти к следующему слову

То, что я пытаюсь сделать, это остановиться на определенном слове, но затем сделать что-то со словом после этого.

В частности, моя программа просматривает файл, содержащий слова. Каждый раз, когда он видит строку «NEWWORD» он должен сделать что-то со словом «следующим» NEWWORD

string str; 
ifstream file; 
file.open("wordFile.txt"); 
while(file >> str){ 
    //Look through the file 
    if(str == "NEWWORD"){ 
     //Do something with the word following NEWWORD 
    } 

}  
file.close; 

Как я могу сказать ifstream, чтобы перейти к следующему слову?

P.S: Извините, если я сделал что-то неправильно в отношении правил и правил. Это моя первая публикация.

+0

прочитано от stdin ... –

ответ

1

Каждый раз, когда вы извлечь из потока с помощью >> он автоматически перейдет к следующему пункту (то есть, как ваш while цикл продолжает продвижение через файл до тех пор, пока не найдет «NEWWORD». Вы можете просто извлечь следующий элемент, когда вы видите " NEWWORD ":

string str; 
ifstream file; 
file.open("wordFile.txt"); 
while(file >> str){ 
    //Look through the file 
    if(str == "NEWWORD"){ 
     //Do something with the word following NEWWORD 
     if (file >> str) { 
      // the word following NEWWORD is now in str 
     } 
    } 

}  
file.close; 
+0

Хорошо, я был ти Это продвигается вперед в конце цикла. Спасибо. – 11matt556

0

Чтобы уточнить ответ Мэтта, используя >> на IStream найдет следующий символ, не пробел, а затем прочитать все символы, которые он находит, пока он не достигнет символа пробела или конца файла.