Форум программистов, компьютерный форум CyberForum.ru

Как избавится от слов во входном потоке? - C++

Восстановить пароль Регистрация
 
nikkka
Мат в 32 хода
 Аватар для nikkka
235 / 170 / 8
Регистрация: 10.09.2009
Сообщений: 1,096
16.05.2010, 09:42     Как избавится от слов во входном потоке? #1
Как избавится от слов во входном потоке?
Программа должна считать (сохранение не обязательно) и подсчитать кол. слов до слова "done". Пример:
Вход. текст:
he has done it very well
Выход. текст:
2
Слова после "done" он должен проигнорировать. Прога работает, но если писать дальше, то в далее считываемые переменные сохраняются слова "it", "very", "well", что мне вовсе не нужно. Могу использовать cin.get(), но он работает только на одном символе. Как убрать ненужные слова из входного потока? Может создать переменную word2[31], и загнать в нее по очереди слова после "done", как в данной проге я загонял в переменную word слова до "done"-a (используя цикл с условием eof-a)?
Подскажите...

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <string>
#include <conio.h>
int main()
{
    using namespace std;
    cout<<"Enter words (to stop, type the word done):\n";
    char word[31];
    cin>>word;
    int count=0;
    while (strcmp(word,"done"))
    {
        cin>>word;
        count++;
    }
    cout<<count;
    getch();
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.05.2010, 09:42     Как избавится от слов во входном потоке?
Посмотрите здесь:

C++ Как узнать есть ли сволы во входном потоке?
Теория о входном и выходном потоке C++
C++ подскажите как выполнить метод в потоке
C++ Заголовок CMDIFrameWnd - как избавится?
как избавится от мерцания при выводе массива C++
C++ Не могу создать поток( Нужно чтобы функция запускается в потоке и работала там пока не закроем в потоке)
Как избавится от подчеркивания sqrt C++
C++ Посчитать количество слов во входном файле и записать его в результирующий
C++ Как правильно переместить позицию в потоке?
C++ Написать программу, которая ищет во входном потоке два повторяющихся друг за другом слова
C++ Проверка на наличие числового значения во входном потоке
Нестабильная работа программы при большом количестве строк во входном потоке C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mr.X
Эксперт С++
 Аватар для Mr.X
3011 / 1667 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
16.05.2010, 10:23     Как избавится от слов во входном потоке? #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
//Программа должна считать (сохранение не обязательно) и подсчитать кол. слов 
//до слова "done".
#include <string>
#include <sstream>
#include <iostream>
 
size_t count_words_before_stop_word
    (
        std::string  text,
        std::string  stop_word
    )
{
    size_t              count = 0;
    std::string         cur_word;
    std::istringstream  text_potok(text);
    while(text_potok >> cur_word && cur_word != stop_word)    
    {
        ++count;
    }
    return count;
}
 
int main()
{
    std::string txt;
    for(;;)
    {
        std::cout << "Input string: "
                  << std::endl;        
        getline(std::cin, txt);
        std::cout << "Num words before word \"done\" = "
                  << count_words_before_stop_word(txt, "done")
                  << std::endl
                  << std::endl
                  << std::endl;
    }
    return 0;
}
Yandex
Объявления
16.05.2010, 10:23     Как избавится от слов во входном потоке?
Ответ Создать тему
Опции темы

Текущее время: 17:31. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru