Страница 1 из 1

Не работает фунция scanf("%c", &x)

Добавлено: 16 мар 2009, 10:39
Andrey K.
Здравствуйте, уважаемые!
Столкнулся с проблемой, что не работает функция scanf("%c", &x). Определяется некорректным выводом в окне и аварийным завершением работы программы. До этого момента ни разу не работал с вводом одиночных символов... Любая другая конструкция указанной фунцкции с другими аргументами работает нормально, проблемы только с вводом одиночных символов. Подскажите, в чем дело!!! Перерыл книги Кернигана и Ричи, а также кучу других учебников, везде пишется, что именно scanf("%c", &x) является рабочей функцией для ввода символов. Не говорю о том, что переменная х определена как char, считаю, что это как само собой разумеящееся...

Re: Не работает фунция [B]scanf("%c", &x)[/B]

Добавлено: 16 мар 2009, 13:22
Airhand
Покажи кусок кода, где ты её юзаеш. У всех работает, значит ошибка в твоём коде.

Re: Не работает фунция [B]scanf("%c", &x)[/B]

Добавлено: 16 мар 2009, 23:50
Decoder
Наверно лучше переместить эту тему в раздел "Решите мне задачку": уж слишком банальный вопрос...

Re: Не работает фунция [B]scanf("%c", &x)[/B]

Добавлено: 17 мар 2009, 02:26
Andrey K.
Вот, накидал пример.
int _tmain(int argc, _TCHAR* argv[])
{

1 int aa=0;
2 char x;
3 printf("a=");
4 scanf("%d",&aa);
5 printf("Sim=");
6 scanf("%c",&x);//не получается ввести символ!!!
7 printf("Sim=%c",x);//???????????????????????????
8 return 0;
}
Если в этом примере отключить двойными слешами все лишние строки, например 1,3,4, всё прекрасно считывается, а вместе с остальными строками не работает! Компилировал в VC2008 RUS и Dev-C++ - результат один и тот же...

Я не прошу решить мне задачку! Прошу указать то, что я делаю не так!

Re: Не работает фунция [B]scanf("%c", &x)[/B]

Добавлено: 17 мар 2009, 02:45
Decoder
1. Переменная x должна иметь тип int, а не char, даже если тебе нужен только один символ.
2. Для ввода одиночных символов есть специальные функции, типа getchar() или fgetc(stdin).