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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.04.2010, 17:49   #1
Sam Gold
Форумчанин
 
Аватар для Sam Gold
 
Регистрация: 26.03.2010
Сообщений: 538
Стрелка Проблема с пробелами в строках

Пишу прогу для обмена сообщениями между клиентами.
при вводе текста, сообщение на клиенте считывается только до первого пробела. Подскажите, кто знает, как решить эту проблему.


Код:
char *message;
cin >> message;
send(client,message,sizeof(message) ,0);
Единственный способ стать умнее - играть с более умным противником.
Sam Gold вне форума Ответить с цитированием
Старый 23.04.2010, 18:40   #2
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Во-первых нужно выделять память под сообщение. Для считывания строки целиком можно использовать метод cin.getline()
Код:
char message[80];
std::cin.getline(message, 80);
Или, если надумаете использовать std::string(что намного удобнее), читать в неё можно так:
Код:
std::string message;
std::getline(std::cin, message);
netrino вне форума Ответить с цитированием
Старый 23.04.2010, 20:26   #3
Sam Gold
Форумчанин
 
Аватар для Sam Gold
 
Регистрация: 26.03.2010
Сообщений: 538
По умолчанию

Спасибо большое)
Единственный способ стать умнее - играть с более умным противником.
Sam Gold вне форума Ответить с цитированием
Старый 23.04.2010, 20:28   #4
Sam Gold
Форумчанин
 
Аватар для Sam Gold
 
Регистрация: 26.03.2010
Сообщений: 538
По умолчанию

Хм при использовании
std::cin.getline(message,80);
выводит только то, что после пробела
Единственный способ стать умнее - играть с более умным противником.
Sam Gold вне форума Ответить с цитированием
Старый 23.04.2010, 20:34   #5
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Покажите код, так ничего сказать нельзя
netrino вне форума Ответить с цитированием
Старый 23.04.2010, 21:58   #6
Sam Gold
Форумчанин
 
Аватар для Sam Gold
 
Регистрация: 26.03.2010
Сообщений: 538
По умолчанию

Все нашел в чем было дело, надо перед этим std::cin.ignore() поставить
Вот:
cin.ignore();

cin.getline(message,80);
Тогда все работает
Единственный способ стать умнее - играть с более умным противником.
Sam Gold вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проблема с пробелами(VBA) мария2507 Помощь студентам 0 14.04.2010 16:04
Дополнить слова пробелами на языке Си hellslash Помощь студентам 1 20.12.2009 12:10
Как организовать ввод строки с пробелами? Adminx Общие вопросы C/C++ 11 20.11.2009 02:33
Чтение строки с пробелами phpcreator Помощь студентам 5 15.10.2009 18:13
Ввод строки с пробелами Сергей089 Помощь студентам 15 24.04.2009 23:01