|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
30.03.2015, 19:55 | #1 |
Пользователь
Регистрация: 19.10.2014
Сообщений: 49
|
Проблемы с getc в СИ
Уважаемые форумчане,помогите пожалуйста с одной проблемкой: gets не хочет работать,а scanf читает первое слово до пробела.
По задаче мне нужно создать структуру данных,в которой будут храниться ФИО преподавателя,Кафедра и нагрузка. Все бы было хорошо,если бы при вводе ФИО в буфер записывалось не первое слово до пробела,а все.Как только я не извращался с gets и scanf ничего не получилось.Си у нас недавно,объясняют хорошо,но практика бежит вперед лекций,поэтому очень расчитываю на Вашу помощь.Заранее огромное Спасибо. P.s. Сама проблема находится в первом цикле в главной программы. Код:
Последний раз редактировалось Stilet; 30.03.2015 в 20:01. |
30.03.2015, 20:31 | #2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,792
|
Насколько я помню можно в scanf поставить несколько параметров через пробел, тогда сканф считает верно :
Код:
I'm learning to live...
|
30.03.2015, 20:59 | #3 |
Пользователь
Регистрация: 19.10.2014
Сообщений: 49
|
спасибо,если ничего другого не придумаю,то воспользуюсь этим.
|
30.03.2015, 21:10 | #4 |
Форумчанин
Регистрация: 07.01.2014
Сообщений: 124
|
Можно FIO заполнять посимвольно, через gethe()
http://www.programmersforum.ru/showthread.php?t=275305
#define TRUE FALSE //счастливой отладки
|
31.03.2015, 05:11 | #5 |
Участник клуба
Регистрация: 30.07.2008
Сообщений: 1,639
|
Это особенность реализации компилятора. В потоке ввода остается символ перехода на новую строку, который отлавливает gets в качестве ввода. Причем оно так работает и в VC++ и в G++. Рекомендуется вызывать функцию getchar перед вызовом gets или функцию gets вызывать два раза подряд.
Тема рассматривалась уже неоднократно: 28.07.2008 Не работает функция gets()!!! 14.06.2011 Не работает gets() в С++ ( рекомендуют fgets юзать ) 27.10.2010 Странное поведение gets (тут рекомендуют cin.clear() ) 18.11.2011 http://www.programmersforum.ru/showthread.php?t=174201 (рекоменуют fflush перед gets )
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Проблемы с vba (проблемы создания макросов) | Leojse | Microsoft Office Excel | 4 | 26.12.2013 20:09 |
2 проблемы | hvz- | Win Api | 7 | 03.12.2012 23:53 |
проблемы с Qt | CodeNOT | Qt и кроссплатформенное программирование С/С++ | 3 | 27.03.2012 12:17 |
проблемы с IE | Tradua | HTML и CSS | 1 | 05.08.2011 06:54 |
проблемы с IE | xakzona | Помощь студентам | 1 | 16.12.2008 21:53 |