int i = scanf("%u",&u);
Вы должны инициализировать u
с некоторыми значениями или по крайней мере предоставить некоторые значения для scanf
. Если вы не вводите данные во время сканирования, тогда u
- неинициализированная локальная переменная со значением мусора. Также используйте fgets
вместо scanf, который считается более безопасным.
0 is 4198579'\n'
Пожалуйста, прочитайте,
Использование символов, читаемых scanf (), в качестве операторов C
Даже getchar () не помогает. Для этого вам нужно написать собственный синтаксический анализатор.
Или, если вы просто хотите, чтобы знаки печатались, попробуйте использовать ASCII,
#define PLUSSIGN 43
unsigned int u = PLUSSIGN;
printf("%d is %u%c",i,u,c);
Другие способы включают использование перечислимого типа для определения знаков с ASCII. ценности. Это помогает, если вы хотите программно использовать знак в зависимости от некоторых входных данных, или вы можете просто использовать их как строку (самый простой способ) в операторе switch
. Выберите любой из методов в зависимости от того, что вы пытаетесь выполнить.