|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
13.11.2009, 18:35 | #1 |
Пользователь
Регистрация: 02.08.2009
Сообщений: 24
|
функция gets
задача:
создать программу, позволяющую вводить элементы массива(не более 30 элементов), содержащие сведения о расписании поездов: день недели, станция назначения, номер поезда, время отправления, и позволяющую по задаваемой станции назначения определить какие поезда отправляются до интересующей станции реализация: Код:
использую функцию gets для ввода названия станция, чтобы автоматически добавлялся символ конца строки, программа компилируется, но при выполнении программа не дает мне ввести строку и переходит к следующему пункту скрин: http://radikal.ru/F/s61.radikal.ru/i...deb3e.jpg.html при использовании scanf все работает нормально, но мне нужно чтобы добавлялся символ конца строки. Последний раз редактировалось Sazary; 16.11.2009 в 00:30. |
13.11.2009, 19:16 | #2 |
Участник клуба
Регистрация: 18.10.2008
Сообщений: 1,409
|
попробуйте так
Код:
|
13.11.2009, 19:23 | #3 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,065
|
а где память под railway::station выделяется? а то пытаться записывать строку в случайный буфер чревато...
|
13.11.2009, 23:48 | #4 | ||
Пользователь
Регистрация: 02.08.2009
Сообщений: 24
|
Цитата:
Но хотелось бы знать, почему не работало? Цитата:
|
||
13.11.2009, 23:57 | #5 | |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,065
|
Цитата:
Кстати, этот длинный некрасивый switch сокращается до краткого: Код:
|
|
14.11.2009, 00:45 | #6 | |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
Цитата:
Строка форматирования, которую Вы ему передаёте, говорит "взять целое из входного потока", но насчёт того, что нужно ещё захватить и перевод строки scanf не в курсе Потому он остаётся во входном потоке, что и считывает gets( ведь gets читает как раз до перевода строки, потому она, с чувством выполненного долга, возвращает управление программе считав оставленный scanf-ом перевод строки из потока ). fflush(stdin) стирает всё из буфера входного потока, в том числе и перевод строки, потому это помогает. В принципе можно делать иначе, передавать в scanf вот такую строку форматирования: "%d " - прошу обратить внимание на пробел после %d. Последний раз редактировалось netrino; 14.11.2009 в 00:54. |
|
14.11.2009, 13:49 | #7 |
Пользователь
Регистрация: 02.08.2009
Сообщений: 24
|
Понял, cпасибо всем за пояснения и конструктивные замечания
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Функция | SL1CK | Помощь студентам | 3 | 07.06.2009 17:36 |
функция | Cpluser | Общие вопросы C/C++ | 2 | 28.02.2009 23:08 |
Функция | asd48 | Помощь студентам | 2 | 21.12.2008 17:17 |
функция | Lemo | Помощь студентам | 7 | 24.10.2008 12:54 |
одна функция потока, а другая функция - член класса запускающего этот поток | Дмитрий_Ч | Общие вопросы C/C++ | 2 | 27.09.2007 08:50 |