Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Clarityeye
0 / 0 / 4
Регистрация: 20.03.2015
Сообщений: 45
#1

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

26.05.2015, 14:56. Просмотров 357. Ответов 10
Метки нет (Все метки)

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

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include  <iostream>
#include <string>
using namespace std;
 
int main()
{
 
    string s2;
    string s1;
    
    while (cin >> s1)
        s2 += s1;
    
        cout << s2 ;
 
        system("pause");
return 0;
 
}

Подскажите, пожалуйста, как эту задачу решить? Вроде бы простая, у меня цикл получается бесконечный. Правильно ли я понимаю смысл задачи, что ввел слово, вывелось, ввел второе слово вывелось первое слово+второе? Вывелось первое+второе+третье?
http://www.cyberforum.ru/cpp-beginners/thread1666936.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.05.2015, 14:56
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Напишите программу, читающую строки со стандартного устройства ввода и суммирующую их в одну большую строку (C++):

Напишите программу, которая соединит три строки в одну таким образом, что...
Заданы три строки длиной по 11 символов. Напишите программу, которая соединит...

Оператор for, без if (Напишите программу, суммирующую числа в указанном пользователем диапазоне, но без оператора if, который устанавливает границы)
Напишите программу, суммирующую числа в указанном пользователем диапазоне, но...

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

Написать метод, считывающий строку со стандартного ввода
Необходимо написать метод, считывающий строку со стандартного ввода, который...

Напишите программу, которая вводит строку и выводит ее, сокращая каждый раз на 1 символ с конца строки
Напишите программу, которая вводит строку и выводит ее, сокращая каждый раз на...

10
Clarityeye
0 / 0 / 4
Регистрация: 20.03.2015
Сообщений: 45
27.05.2015, 21:29  [ТС] #2
Может кто подскажет насчет этой задачи? Особенно, как сделать чтобы while не был бесконечным ...
0
isobo531
43 / 43 / 28
Регистрация: 11.11.2014
Сообщений: 325
27.05.2015, 21:34 #3
Clarityeye, Что за условие такое?

Добавлено через 56 секунд
И строку вводи либо через gets(); либо через cin.getline();
0
S_el
2133 / 1661 / 354
Регистрация: 15.12.2013
Сообщений: 6,595
27.05.2015, 21:36 #4
Clarityeye, до каких пор строки считывать?
0
Clarityeye
0 / 0 / 4
Регистрация: 20.03.2015
Сообщений: 45
27.05.2015, 21:46  [ТС] #5
S_el, В задаче не сказано до каких пор считывать... можете любое условие написать, для примера?
0
S_el
2133 / 1661 / 354
Регистрация: 15.12.2013
Сообщений: 6,595
27.05.2015, 21:53 #6
Clarityeye, считываем до Ctrl+Z.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <string>
int main()
{
   std::cout<<"Input strings:"<<std::endl;
   std::string line;
   std::string r;
     while (std::getline(std::cin,line))
         r+=line;
     std::cout<<r<<std::endl;
 
    return 0;
}
1
Clarityeye
0 / 0 / 4
Регистрация: 20.03.2015
Сообщений: 45
27.05.2015, 22:17  [ТС] #7
S_el,спасибо, а вы не подскажите, где условие до "Ctrl+z"? Или функция getline() по умолчанию это задает?
0
isobo531
43 / 43 / 28
Регистрация: 11.11.2014
Сообщений: 325
27.05.2015, 22:27 #8
Clarityeye, Теорию почитай по строкам в С++. Там есть объяснение, что такое Ctrl+Z
1
Clarityeye
0 / 0 / 4
Регистрация: 20.03.2015
Сообщений: 45
27.05.2015, 22:47  [ТС] #9
isobo531, понятно, у меня в теории про это не было указано просто.
0
S_el
2133 / 1661 / 354
Регистрация: 15.12.2013
Сообщений: 6,595
27.05.2015, 22:56 #10
Цитата Сообщение от Clarityeye Посмотреть сообщение
а вы не подскажите, где условие до "Ctrl+z"?
условие в условии цикла
Ввод будет осуществляться пока поток будет иметь значение после неявного преобразования эквивалентное true.
Ctrl+Z в Windows закрывает стандартный поток ввода(с ним связан объект std::cin),и приведет поток к состоянию эквивалентному false.
Но лучше почитать теорию по вводу/выводу в C/C++ в учебниках.
0
n0n4m3r
25 / 25 / 15
Регистрация: 12.10.2013
Сообщений: 183
27.05.2015, 23:08 #11
А почему нельзя так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <string>
 
int main()
{
std::string line;
std::string comparedLine;
std::string lineWithSpaces;
 
do
{
std::cout << "Input: ";
std::getline(std::cin, line);
comparedLine+=line;
lineWithSpaces+=line;
lineWithSpaces+=" ";
std::cout << "Line: " << comparedLine << '\n';
std::cout << "Line with spaces: " << lineWithSpaces<< '\n';
} while (line != "");
 
return 0;
}
0
27.05.2015, 23:08
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.05.2015, 23:08
Привет! Вот еще темы с решениями:

Написать программу, которая получает со стандартного потока ввода права доступа к файлам каталога
Очень срочно нужно написать данную программу. Буду очень признателен и...

Написать программу, которая выполняет ввод текстовой информации из файла или стандартного потока ввода
Написать программу, которая выполняет ввод текстовой информации из файла или...

Чтение из нескольких окон ввода в одну строку
Вот есть у меня 16 окон ввода, в каждом окне по 8 цифр. Как через цикл...

Даны две строки, урезать бОльшую строку до длины меньшей
Даны две строки, урезать большую строку до длины меньшей. Надеюсь на вашу...


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

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

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