Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/21: Рейтинг темы: голосов - 21, средняя оценка - 4.67
6 / 6 / 3
Регистрация: 29.12.2016
Сообщений: 132

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

10.01.2017, 22:14. Показов 4782. Ответов 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)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.01.2017, 22:14
Ответы с готовыми решениями:

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

Считать в переменную типа string определенное количество символов из потока ввода
Подскажите, пожалуйста, есть ли такая функция или что, чтобы я мог считать в переменную типа string определенное количество символов,...

Присвоение объекту типа string рандомный элемент из массива типа string
Добрый вечер, дорогие форумчане. Я столкнулся с проблемой. Как присвоить объекту типа string рандомный элемент из массива типа string? ...

5
Фрилансер
 Аватар для FateOri
761 / 458 / 146
Регистрация: 06.01.2017
Сообщений: 4,856
10.01.2017, 22:27
может пишу не то но вроде для ввода строки с консоли в С++ нужно использовать 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/refer... g/getline/
0
Модератор
Эксперт С++
 Аватар для zss
13771 / 10964 / 6491
Регистрация: 18.12.2011
Сообщений: 29,241
10.01.2017, 22:40
Лучший ответ Сообщение было отмечено mskoromets как решение

Решение

Цитата Сообщение от 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
6 / 6 / 3
Регистрация: 29.12.2016
Сообщений: 132
10.01.2017, 22:49  [ТС]
Большое спасибо, помогло а где можно подробнее узнать про "brake", который останавливает ввод?

Добавлено через 2 минуты
И да, когда я вывожу на экран значения вектора то "exit" является последним эллементом вектора, как его удалить?
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
10.01.2017, 22:53
Цитата Сообщение от mskoromets Посмотреть сообщение
И да, когда я вывожу на экран значения вектора то "exit" является последним эллементом вектора, как его удалить?
Перенеси words.push_back(word); ниже break.
1
6 / 6 / 3
Регистрация: 29.12.2016
Сообщений: 132
10.01.2017, 22:57  [ТС]
Благодарю
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.01.2017, 22:57
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru