Здравствуйте, уважаемые!
Столкнулся с проблемой, что не работает функция scanf("%c", &x). Определяется некорректным выводом в окне и аварийным завершением работы программы. До этого момента ни разу не работал с вводом одиночных символов... Любая другая конструкция указанной фунцкции с другими аргументами работает нормально, проблемы только с вводом одиночных символов. Подскажите, в чем дело!!! Перерыл книги Кернигана и Ричи, а также кучу других учебников, везде пишется, что именно scanf("%c", &x) является рабочей функцией для ввода символов. Не говорю о том, что переменная х определена как char, считаю, что это как само собой разумеящееся...
Не работает фунция scanf("%c", &x)
Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain
Покажи кусок кода, где ты её юзаеш. У всех работает, значит ошибка в твоём коде.
Оптимизация по скорости:
#define while if
Оптимизация по размеру:
#define struct union
#define while if
Оптимизация по размеру:
#define struct union
Наверно лучше переместить эту тему в раздел "Решите мне задачку": уж слишком банальный вопрос...
Вот, накидал пример.
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++ - результат один и тот же...
Я не прошу решить мне задачку! Прошу указать то, что я делаю не так!
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++ - результат один и тот же...
Я не прошу решить мне задачку! Прошу указать то, что я делаю не так!
1. Переменная x должна иметь тип int, а не char, даже если тебе нужен только один символ.
2. Для ввода одиночных символов есть специальные функции, типа getchar() или fgetc(stdin).
2. Для ввода одиночных символов есть специальные функции, типа getchar() или fgetc(stdin).