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

Прочитать неограниченное количество строк, а после нажатия Enter выйти из цикла - C++

Восстановить пароль Регистрация
 
Dua
0 / 0 / 0
Регистрация: 06.12.2012
Сообщений: 5
06.12.2012, 02:04     Прочитать неограниченное количество строк, а после нажатия Enter выйти из цикла #1
Здравствуйте. Столкнулся с такой проблемой: необходимо прочитать неограниченное количество строк, а после нажатия Enter выйти из цикла.
Делаю так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <string>
using std::cin;
using std::cout;
using std::string;
using std::endl;
 
int main (){
    string s, z, x="\n";
    cout << "Введите первую строку";
    while (cin >> s){
        cout << s << " ";
        if (s[s.size-1]==x[0])
                break;}
    cout << "Введите вторую строку";
............................................................................
Но это неверно, другие идеи в голову не приходят, хотя аналогично, если строку x задать с каким-либо символом, всё работает, при вводе данного символа, прога выходит из цикла.. Вот как сделать, чтобы она по нажатию Enter выходила из цикла?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.12.2012, 02:04     Прочитать неограниченное количество строк, а после нажатия Enter выйти из цикла
Посмотрите здесь:

Неограниченное количество значений C++
C++ do while - как выйти из цикла?
C++ Нужна простая програмка после нажатия на которую будет автоматически скажем в течении 2 мин нажимать ENTER
Закрывается, а не выполняется программа после нажатия enter C++
C++ После нажатия enter переносить курсор на несколько определённых символов вперёд
C++ Выход из цикла после нажатия определенной клавиши
C++ Стоп после нажатия на Enter
почему после нажатия на ноль мне приходится два раза жать на Enter чтобы выйти из программы ,хотя я в while ук C++
C++ Не могу выйти из цикла
Как выйти из цикла клавишей Enter C++
C++ Выйти с внешнего цикла
Остановить ввод после нажатия клавиши enter C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
5659 / 3138 / 356
Регистрация: 29.11.2010
Сообщений: 8,407
06.12.2012, 02:10     Прочитать неограниченное количество строк, а после нажатия Enter выйти из цикла #2
для чего данная конструкция нужна?
Можно сделать, чтобы был вечный цикл считывания, из него можно выйти нажатием Ctrl + D.

Добавлено через 45 секунд
Если нужна строка с пробелами, то это к cin.getline
Dua
0 / 0 / 0
Регистрация: 06.12.2012
Сообщений: 5
06.12.2012, 02:19  [ТС]     Прочитать неограниченное количество строк, а после нажатия Enter выйти из цикла #3
Цитата Сообщение от MrGluck Посмотреть сообщение
для чего данная конструкция нужна?
Можно сделать, чтобы был вечный цикл считывания, из него можно выйти нажатием Ctrl + D.

Добавлено через 45 секунд
Если нужна строка с пробелами, то это к cin.getline
у меня не выходит ctrl+D, программирую в Eclipse, ОС linux.
для чего нужна.. просто вот пытаюсь так сделать и не получается
getline да - аналог этого, но интересно, возможно ли вообще сделать задуманное?

Добавлено через 4 минуты
Цитата Сообщение от MrGluck Посмотреть сообщение
для чего данная конструкция нужна?
Можно сделать, чтобы был вечный цикл считывания, из него можно выйти нажатием Ctrl + D.

Добавлено через 45 секунд
Если нужна строка с пробелами, то это к cin.getline
а, ну просто нужно посмотреть код написания функции getline - вот и ответ на мой вопрос) спасибо)
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
5659 / 3138 / 356
Регистрация: 29.11.2010
Сообщений: 8,407
06.12.2012, 02:20     Прочитать неограниченное количество строк, а после нажатия Enter выйти из цикла #4
Цитата Сообщение от Dua Посмотреть сообщение
у меня не выходит ctrl+D, программирую в Eclipse, ОС linux.
для чего нужна.. просто вот пытаюсь так сделать и не получается
getline да - аналог этого, но интересно, возможно ли вообще сделать задуманное?
Вы наверное неправильно пишете.
надо так:
C++
1
2
3
4
5
while(std::cin >> x)
{
    do_smth
}
std::cout << "Last x: " << x;
Ввод:
Код
1
2
3
Ctrl + D
Last x: 3
Vourhey
Почетный модератор
6470 / 2245 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
06.12.2012, 02:22     Прочитать неограниченное количество строк, а после нажатия Enter выйти из цикла #5
C++
1
2
3
    do
        std::getline(std::cin, s);
    while(s.length());
alsav22
5284 / 4803 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
06.12.2012, 06:44     Прочитать неограниченное количество строк, а после нажатия Enter выйти из цикла #6
C++
1
2
3
4
5
6
7
8
string s;
cout << "Введите строку (пустая строка - выход)";
while (getline(cin, s))
{
     if (s.empty())
          break;
    cout << s << endl;
}
Yandex
Объявления
06.12.2012, 06:44     Прочитать неограниченное количество строк, а после нажатия Enter выйти из цикла
Ответ Создать тему

Метки
enter, выйти, количество, нажатия, неограниченное, после, прочитать, строк, цикла
Опции темы

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