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

Ответить

Код подтверждения
Введите код в точности так, как вы его видите. Регистр символов не имеет значения.

BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[url] ВКЛЮЧЁН
Смайлики ОТКЛЮЧЕНЫ

Обзор темы
   

Развернуть Обзор темы: Не работает фунция scanf("%c", &x)

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

Decoder » 17 мар 2009, 02:45

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

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

Andrey K. » 17 мар 2009, 02:26

Вот, накидал пример.
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]

Decoder » 16 мар 2009, 23:50

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

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

Airhand » 16 мар 2009, 13:22

Покажи кусок кода, где ты её юзаеш. У всех работает, значит ошибка в твоём коде.

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

Andrey K. » 16 мар 2009, 10:39

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

Вернуться к началу