Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.11.2009, 00:27   #1
AxenicX
Пользователь
 
Регистрация: 21.09.2009
Сообщений: 65
По умолчанию Программа считает пробел за конец строки

Всем привет! Снова я со своими вопросами
Подскажие пожалуйсто, почему используя поток ввода cin любой пробел считается как конец строки и соответственно чтение из потока ввода заканчивается. Скажите как сделать так чтобы пробел был пробелом? Я пользовался gets() но она работает конкретно я не знаю, а скоро олимпиада по информатике, поэтому боюсь ошибиться. Подскажите пожалуйсто надежный способ чтение данных из потока так чтобы пробел был.
AxenicX вне форума Ответить с цитированием
Старый 12.11.2009, 00:36   #2
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Код:
char lpBuffer[80];
std::cin.getline(lpBuffer, 80);
Если подключить string, то для объектов класса std::string можно использовать следующее:
Код:
#include <string>
...
std::string str;
std::getline(std::cin, str); // Вместо std::cin можно использовать любой поток ввода
Так а чем именно gets() не устраивала?
netrino вне форума Ответить с цитированием
Старый 12.11.2009, 00:42   #3
AxenicX
Пользователь
 
Регистрация: 21.09.2009
Сообщений: 65
По умолчанию

Там такая система получилась, что поле того как ты используешь cin то нужно вызывать кое-каукую функцию(как я понял сброса потока ввода) и тогда только gets() работает сразу а не после первого вызова. Мало ли каких ещё он сюрпризов подросит, время на олимпиадах ограничено.
AxenicX вне форума Ответить с цитированием
Старый 12.11.2009, 10:16   #4
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Если не принципиально хранить введенное одной строкой, то можно, например
Код:
std::string s;
while (std::cin >> s)
 std::cout << s << "\n";
Ну или аналогично можно просто
Код:
std::string str, s;
while (std::cin >> s)
 str += " " += s;
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программка в Борланд Си... Программа есть... Ошибку не высвечивает но и не считает... Спасайте... Катюшенька Помощь студентам 1 18.05.2009 22:21
как добавить строку в конец строки Damhurz PHP 4 16.04.2009 14:35
Как пререместить мигающую палочку в конец строки TEdit ? Protsv Общие вопросы Delphi 2 07.04.2008 08:43
Поставить курсор в конец строки в TEdit Никки Общие вопросы Delphi 2 17.03.2008 00:27
Как из Memo вывести строки в txt файл в конец там существующих Saili Компоненты Delphi 8 16.12.2006 11:23