Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
mskoromets
6 / 6 / 2
Регистрация: 29.12.2016
Сообщений: 130
Завершенные тесты: 2
#1

Остановка ввода типа string в цикле - C++

10.01.2017, 22:14. Просмотров 206. Ответов 5
Метки нет (Все метки)

Здравствуйте. Хочу задать вопрос: как остановить ввод в цикле типа string данным способом. Если такое не возможно то предложите другой простой способ остановить ввод(про горячие клавиши знаю, но иртересно узнать другой способ)
Вот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
   #include <iostream>
#include <vector>
#include <conio.h>
using namespace std;
int main()
{
vector<string> words;
    char exit = '@';
    string word = " ";
    while(cin >> word)
    words.push_back(word);
    if(word == exit)
    {
    for (int i = 0; i < words.size(); i++)
    cout << words[i] << endl;
    }
    
    
getch();
return 0;
(Этот код не компилируется, выдает километровые пояснения на египетско-китайском языке)
 
}
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.01.2017, 22:14
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Остановка ввода типа string в цикле (C++):

Перегрузка потокового ввода/вывода для класса с полем типа string - C++
Возможно ли перегрузить &gt;&gt; и &lt;&lt; или придётся заменить переменную string на массив char? У меня ошибка появляется: &quot;бинарный &quot;&lt;&lt;&quot;: не...

Open Watcom нет перегрузки для оператора ввода для типа std::string - C++
Решил использовать компилятор Open Watcom C++ и в результате не компилируется проект. Проект прилагается

Здравствуйте! Создал класс std::string. Не создается объкт типа string... Подскажите в чем причина? - C++
#include &lt;stdlib.h&gt; #include &lt;iostream&gt; #include &lt;string.h&gt; //using namespace std; class string { private: int...

Запись информации из вектора типа string в вектор типа double - C++
Как записать только числа , которые хранятся в векторе типа стринг, в вектор типа дабл, в векторе типа стринг есть как буквы так и числа ,...

Читать строку типа string из файла, разбить ее на массив слов типа char - C++
Нужно сделать так что бы строчка вида &quot;&lt;слово1&gt;:&lt;слово2&gt;:&lt;слово3&gt;:&lt;слово4&gt;&quot; , считывалась и каждое слово заносилось в свою переменную....

Как работать с типом string в цикле на С++ - C++
Доброго времени суток, и с Наступающим всех! Вопрос в том, как реализовать 21-ую строку, чтобы при вводе &quot;Да&quot; я мог повторить цикл?...

5
FateOri
73 / 139 / 21
Регистрация: 06.01.2017
Сообщений: 1,849
Завершенные тесты: 2
10.01.2017, 22:27 #2
может пишу не то но вроде для ввода строки с консоли в С++ нужно использовать getline:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
// extract to string
#include <iostream>
#include <string>
 
int main ()
{
  std::string name;
 
  std::cout << "Please, enter your full name: ";
  std::getline (std::cin,name);
  std::cout << "Hello, " << name << "!\n";
 
  return 0;
}
http://www.cplusplus.com/reference/string/string/getline/
0
zss
Модератор
Эксперт С++
6928 / 6490 / 2182
Регистрация: 18.12.2011
Сообщений: 17,105
Завершенные тесты: 1
10.01.2017, 22:40 #3
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от mskoromets Посмотреть сообщение
if(word == exit)
Вы хотели сделать выход по слову "exit"?
Только внесите условие внутрь цикла и "exit" в кавычках:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <vector>
#include <string>
using namespace std;
int main()
{
    vector<string> words;
    string word;
    while(cin >> word)
    {
        words.push_back(word);
        if(word == "exit")
            break;
    }
    for (vector<string>::iterator i=words.begin();i!=words.end();++i)
            cout << *i << endl;
    system("pause");
    return 0;
}
1
mskoromets
6 / 6 / 2
Регистрация: 29.12.2016
Сообщений: 130
Завершенные тесты: 2
10.01.2017, 22:49  [ТС] #4
Большое спасибо, помогло а где можно подробнее узнать про "brake", который останавливает ввод?

Добавлено через 2 минуты
И да, когда я вывожу на экран значения вектора то "exit" является последним эллементом вектора, как его удалить?
0
nd2
2820 / 2390 / 851
Регистрация: 29.01.2016
Сообщений: 8,004
10.01.2017, 22:53 #5
Цитата Сообщение от mskoromets Посмотреть сообщение
И да, когда я вывожу на экран значения вектора то "exit" является последним эллементом вектора, как его удалить?
Перенеси words.push_back(word); ниже break.
1
mskoromets
6 / 6 / 2
Регистрация: 29.12.2016
Сообщений: 130
Завершенные тесты: 2
10.01.2017, 22:57  [ТС] #6
Благодарю
0
10.01.2017, 22:57
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.01.2017, 22:57
Привет! Вот еще темы с ответами:

Как скопировать строку типа std::string в другую строку такого же типа? - C++
Хотел скопировать строку #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;string&gt; using namespace std; int _tmain(int...

String::insert() в цикле выдает ошибку сегментации - C++
Добрый вечер, есть такой вот кусок кода: string t = &quot;c-++a+--b&quot;; std::string::iterator itt; for (itt = t.begin(); itt!= t.end();...

Использование переменной типа char в цикле for - C++
Ребята, подскажите пожалуйста, как использовать 8-ми битную переменную в цикле for? Неправильный пример - for(char i = 0; i &lt; N; i++)

Перевести строку типа string, в строку типа double - C++
Помогите с кодом. Как строку типа стринг, например 123123.123123, перевести в тип double? Кода перевожу с помощью &quot;atof&quot; оно берёт только...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

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