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

вектор "словарь" - C++

Восстановить пароль Регистрация
 
BetoN
0 / 0 / 0
Регистрация: 22.01.2012
Сообщений: 13
07.06.2012, 22:39     вектор "словарь" #1
задача: создается вектор со словами(words), сортируется и выводится(без повторений). нужно сделать так что бы определенные слова заменялись, к примеру на 'Bleep'...
вся проблема в том что после заполнения первого вектора(ввода Ctrl+Z) через второй "перепрыгивает"
подскажите, пожалуйста, в чем проблема...

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
#include <iostream.h>
#include <string.h>
#include <conio.h>
#include <vector.h>
#include <algorithm.h>
using namespace std;
int main()
{
 vector <string> words;// вектор со словами
 vector <string> dis(4);// вектор с запрещенными словами(количество 4 было поставлено просто для проверки)
 string temp,temp2;
 cout<<"\nVvedite slova \n";
 while(cin>>temp2)    // ввод заканчивается после комбинации Ctrl+Z
  words.push_back(temp2);  
 cout<<"Vvedite nejelatel'nie slova \n";
 while(cin>>temp)
 dis.push_back(temp);
 cout<<"\nKoliсhestvo slov: "<<words.size()<<endl;
 sort(words.begin(), words.end());  // сортировка
 for (int i=0; i<words.size(); ++i)
  if (i==0||words[i-1]!=words[i])  // проверка, новое слово или нет
   for (int j=0; j<dis.size(); ++j)
    {if (words[i]==dis[j]){cout<<"Bleep\n"; break;}else
     cout<<words[i]<<"\n"; break; }
 getch();  
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.06.2012, 22:39     вектор "словарь"
Посмотрите здесь:

Создайте вектор, хранящий десять строковых значений "zero", "one", ..., "nine" C++
C++ Наследуемым классом для комплексного числа объявить класс "радиус-вектор", имеющий данные "длина" и "угол"
C++ Создать класс комплексных чисел и ввести операции: "+", "-", "*", "/".
Чтения структуры из файла (описать структуру с именем "ORDER": "счет плательщика"; "счет получателя"; "сумма, переводится банковской операцией") C++
C++ С++ консольное приложение win32, матерится на первое "pow" после "if", а на "system" говорит что неопределён.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
antoha398
155 / 155 / 3
Регистрация: 29.03.2012
Сообщений: 418
07.06.2012, 22:47     вектор "словарь" #2
поставьте после первого цикла while
C++
1
cin.clear();
и уберите у всех заголовках ".h".
BetoN
0 / 0 / 0
Регистрация: 22.01.2012
Сообщений: 13
07.06.2012, 22:56  [ТС]     вектор "словарь" #3
Спасибо!
я так догадываюсь "cin.clear();" что то чистит...можете объяснить что оно делает?
antoha398
155 / 155 / 3
Регистрация: 29.03.2012
Сообщений: 418
07.06.2012, 23:04     вектор "словарь" #4
после начатия ctrl+z в потоке устанавливается флаг состояния eofbit (конец файла), поэтому что бы следующий cin работал, надо сбросить состояние на goodbit, что и делает фушкция clear().
BetoN
0 / 0 / 0
Регистрация: 22.01.2012
Сообщений: 13
07.06.2012, 23:07  [ТС]     вектор "словарь" #5
еще раз спасибо!
Yandex
Объявления
07.06.2012, 23:07     вектор "словарь"
Ответ Создать тему
Опции темы

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