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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
nikkka
Мат в 32 хода
235 / 170 / 8
Регистрация: 10.09.2009
Сообщений: 1,096
#1

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

16.05.2010, 09:42. Просмотров 372. Ответов 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++
Как узнать есть ли сволы во входном потоке? :cry:

Теория о входном и выходном потоке - C++
Помогите пожалуйста найти теорию о входном и выходном потоке.

Нестабильная работа программы при большом количестве строк во входном потоке - C++
Вопрос с подвохом: пользователь вставляет n строк символов в консоль, где n &gt; 1000. Задание - сделать так, чтобы программа не зависала и не...

Написать программу, которая ищет во входном потоке два повторяющихся друг за другом слова - C++
Написать программу, которая ищет во входном потоке два повторяющихся друг за другом слова.

Посчитать количество слов во входном файле и записать его в результирующий - C++
Добрый вечер. Прошу помощи в доработке программы. Задание состоит в следующем: из Input_1.txt считываются слова, производится их...

Заголовок CMDIFrameWnd - как избавится? - C++
рнее окно разворачивается, то его название в заголовке родительского окна отображается в скобках (например, AppName - ). Как избавится от...

Как избавится от подчеркивания sqrt - C++
http://www.cyberforum.ru/attachment.php?attachmentid=251445&amp;d=1364913331&amp;stc=1&amp;thumb=1

Как открыть файл в потоке ifstream? - C++
если имя файла храниться в переменной String s;

Как правильно переместить позицию в потоке? - C++
Почему выводится на консоль 52, а не цифра 4? #include &lt;iostream&gt; #include &lt;stdio.h&gt; using namespace std; void main () { ...

подскажите как выполнить метод в потоке - C++
class T1 { public : void metod1(); void metod2(); } void T1::metod1() { ...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mr.X
Эксперт С++
3042 / 1687 / 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     Как избавится от слов во входном потоке?
Ответ Создать тему
Опции темы

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