2016-10-07 8 views
0

Вот мой код: http://pastebin.com/RbFYCydfКак вы рассчитываете количество слов в каждой строке текстового файла на C++?

Возникли проблемы с выходом пытается заставить его смотреть, как это:

Где Тротуар заканчивается Shel Silverstein 7 Существует место, где тротуар заканчивается 8 и до того, как начнется улица, 5 И там трава становится мягкой и белой, 8 и там солнце горит малино-ярким, 7 и там лунная птица покоится от своего полета. 8 Остыть в ветре мяты. 6 Оставим это место, где дым дует черный. 10 И темная улица ветров и изгибов. 7 Пройдите мимо ям, в которых растут цветы асфальта. 8 Мы будем ходить с измеренной и медленной прогулкой. 11 И наблюдайте, куда идут белые белые стрелы. 7 К месту, где заканчивается тротуар. 7 Да пойдут мы с прогулкой, которая измеряется и медленно, 11 И мы пойдем туда, где пойдут мелко-белые стрелы, 8 Ибо дети, они отмечают, и дети, они знают. 10 Место, где заканчивается тротуар , 6 Общее число слов 134

ответ

1

Там лучший способ, чем баловаться с peek:

Во-первых прочитать всю линию, используя getline.
Поместите эту строку в istringstream.
Подсчитайте слова в этом потоке.
Повторите.

Информация о реализации в качестве упражнения.

0

Я дам вам сложный способ сделать это, должно работать очень хорошо.

string s = "this is simple test"; //assume that this is the line to be calculated 
int i=0,ans=0; 
while (s.find(' ',i+1)!=-1){ 
    i = s.find(' ',i+1); 
    ans++; 
} 
cout<<++ans<<" "; 
+0

Таким образом, второй работает для одной строки в текстовом файле. Как сделать для каждой последующей строки. Также предположим использовать функцию .peek(). – greenee