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

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

Войти
Регистрация
Восстановить пароль
 
Billy_Milligan
1 / 1 / 0
Регистрация: 13.02.2016
Сообщений: 39
#1

Программа читающая строки со стандартного устройства и суммирующая их в одну большую - C++

20.02.2016, 15:15. Просмотров 200. Ответов 7
Метки нет (Все метки)

Здравствуйте. Подскажите, пожалуйста, как мне закончить этот бесконечный цикл while?
Я вывожу это в консоли win32. Бесконечно ввожу слова

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <string>
using namespace std;
 
int main()
{
    string s1, s2;
    while (cin >> s1)
        s2 += s1;
    cout << s2 << endl;
 
 
        system("pause");
    
            
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.02.2016, 15:15
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Программа читающая строки со стандартного устройства и суммирующая их в одну большую (C++):

Напишите программу, читающую строки со стандартного устройства ввода и суммирующую их в одну большую строку - C++
1. Напишите программу, читающую строки со стандартного устройства ввода и суммирующую их в одну большую строку. Отобразите полученную...

Есть ли функция, читающая файл целиком и записывающая его в одну строку? - C++
Подскажите есть ли функция читающая файл целиком и записывающая его в одну стрингу и чтобы все символы такие как \n \t также записывались?...

читающая и пишущая программа - C++
доброго времени суток! помогите написать программу на c++, которая читает из .txt файла и все это записывает в другой .txt файл задом на...

Программа читающая почту - C++
Привет. Надумал такую идею. Есть почтовый ящик с кучей писем. Нужно из этого ящика скопировать в таблицу word дату, отправителя и название...

Программа, суммирующая штрафное время команд при игре в хоккей - C++
Составьте программу, суммирующую штрафное время команд при игре в хоккей. Выводить на экран суммарное штрафное время обеих команд после...

Объединить несколько маленьких программ в одну большую - C++
Есть 8 программ для сортировки массивов, нужно объединить их в одну большую программу с общим мейном, чтобы сортировка выполнялась...

7
MihalNik
55 / 55 / 6
Регистрация: 01.12.2012
Сообщений: 447
20.02.2016, 15:18 #2
Нужен признак окончания ввода данных, например, пустая строка.
1
Kerry_Jr
Модератор
Эксперт PHP
2206 / 2002 / 701
Регистрация: 14.05.2014
Сообщений: 5,867
Записей в блоге: 1
Завершенные тесты: 5
20.02.2016, 15:18 #3
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Billy_Milligan Посмотреть сообщение
как мне закончить этот бесконечный цикл while?
[Ctrl] + [Z]
1
arper
16 / 16 / 3
Регистрация: 08.11.2014
Сообщений: 114
20.02.2016, 15:22 #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <conio.h>
int main()
{
    string s1, s2;
  while(getch()!=13) //Вводим до нажатия Enter
   {
       cin>>s1;
    s2 += s1;
   }
    cout << s2 << endl;
   system("pause");
    return 0;
}
0
Kerry_Jr
Модератор
Эксперт PHP
2206 / 2002 / 701
Регистрация: 14.05.2014
Сообщений: 5,867
Записей в блоге: 1
Завершенные тесты: 5
20.02.2016, 15:24 #5
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Billy_Milligan, а лучше в данном случае использовать какое-нибудь слово для окончания ввода ("quit", "exit", "end", "finish" или что-нибудь на ваш вкус) и сразу после ввода сравнить введенное и заданное для окончания ввода слова, например так
C++
1
while ((cin >> s1) && s1 != "quit")
2
zss
Модератор
Эксперт С++
6540 / 6102 / 2010
Регистрация: 18.12.2011
Сообщений: 15,878
Завершенные тесты: 1
20.02.2016, 15:39 #6
arper, Ваш совет плохой. Потоковый ввод буферизует данные, т.е. \n окажется в буфере и,
соответственно, getch() его не прочтет.
0
arper
16 / 16 / 3
Регистрация: 08.11.2014
Сообщений: 114
20.02.2016, 15:46 #7
Спасибо, буду знать.
А такой способ тоже не пойдет?

C++
1
2
3
4
5
6
7
8
9
#include <windows.h>
string s1, s2;
   while(!GetAsyncKeyState(VK_RETURN)) //Вводим до нажатия Ent
 {
       cin>>s1;
    s2 += s1;
   }
    cout << s2 << endl;
   system("pause");
0
Billy_Milligan
1 / 1 / 0
Регистрация: 13.02.2016
Сообщений: 39
20.02.2016, 16:39  [ТС] #8
Kerry_Jr, отлично, все работает! Спасибо за альтернативные слова, я пока себя не свободно чувствую, а вот такие советы оч. помогают!
0
20.02.2016, 16:39
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.02.2016, 16:39
Привет! Вот еще темы с ответами:

Программа, составляющая перечень хозяйств и суммирующая их автопарк - Visual Basic .NET
Нужно составить программу, которая составляет общий перечень необходимых марок машин для n фермерских хозяйств с указанием их количеств....

Написание программы для стандартного устройства - Delphi
Пожалуйста подскажите как написать программу в delphi используя ее стандартный модуль dll. Т.е. программа которая поставляется вместе с...

Разбить одну большую строку, на строчки) - MySQL
Всем привет! Подскажите пожалуйста, как разбить вот примерно тааааааааакую строку...

Как соединить несколько матриц в одну большую ? - MathCAD
Собственно вопрос в заголовке .


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

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

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