Консультация # 188437: Здравствуйте! У меня возникли сложности с таким вопросом: Среда разработки - VS 2012. Приложение пишется в консоли. Не могу понять, почему не хочет считывать данные в переменную Buf при первом проходе. Второй, третий проход - все нормально, а первый - просто пропускает. Код в приложении. С уважением, Максим...
Здравствуйте! У меня возникли сложности с таким вопросом:
Среда разработки - VS 2012. Приложение пишется в консоли.
Не могу понять, почему не хочет считывать данные в переменную Buf при первом проходе. Второй, третий проход - все нормально, а первый - просто пропускает. Код в приложении.
Здравствуйте, Максим! Потоковый ввод - весьма коварная вещь. После ввода количества стран остается код 0x0a. Вроде как ничего нет, но что-то есть. Вот первая gets_s и вылавливает ввод пустой строки. В итоге buf[0] = 0 Побороть можно, например так: Вместо:
Код :
gets_s(buf);
написать что-то типа:
Код :
do
{
gets_s(buf);
}while(buf[0]==0);
И тогда пустые строки будут отброшены...
Консультировал: Лысков Игорь Витальевич (Старший модератор)
Дата отправки: 16.12.2015, 11:36
5
Благодарю. Все работает. ----- Дата оценки: 16.12.2015, 12:55
Команда портала RFPRO.RU благодарит Вас за то, что Вы пользуетесь нашими услугами. Вы только что прочли очередной выпуск рассылки. Мы старались.
Пожалуйста, оцените его. Если совет помог Вам, если Вам понравился ответ, Вы можете поблагодарить автора -
для этого в каждом ответе есть специальные ссылки. Вы можете оставить отзыв о работе портале. Нам очень важно знать Ваше мнение.
Вы можете поближе познакомиться с жизнью портала, посетив наш форум, почитав журнал,
который издают наши эксперты. Если у Вас есть желание помочь людям, поделиться своими знаниями, Вы можете зарегистрироваться экспертом.
Заходите - у нас интересно!