История изменений
Исправление COKPOWEHEU, (текущая версия) :
А если юзер передумает?
Логичнее проверять что он нажал: если число, то переход, если Ентер, то выбор.
#include <stdio.h>
int main(){
int x;
char c;
scanf("%c", &c);
if( (c >= '0')&&(c <= '9') ){
ungetc(c, stdin);
scanf("%i", &x);
printf("Number: %i\n", x);
}else{
printf("Char: [%c](%i)\n", c, (int)x&0xFF);
}
}
Но лучше бы уж сделали нормальную навигацию стрелочками вверх - вниз. И выбранный пункт подсвечивать. Либо ESC-последовательностью, либо просто рисовать
предыдущий_пункт
> выбранный_пункт <
следующий_пункт
Исправление COKPOWEHEU, :
А если юзер передумает?
Логичнее проверять что он нажал: если число, то переход, если Ентер, то выбор.
#include <stdio.h>
int main(){
int x;
char c;
scanf("%c", &c);
if( (c >= '0')&&(c <= '9') ){
ungetc(c, stdin);
scanf("%i", &x);
printf("Number: %i\n", x);
}else{
printf("Char: [%c](%i)\n", c, (int)x&0xFF);
}
}
Но лучше бы уж сделали нормальную навигацию стрелочками вверх - вниз. И выбранный пункт подсвечивать. Либо ESC-последовательностью, либо просто рисовать ``` предыдущий_пункт
выбранный_пункт < следующий_пункт
Исходная версия COKPOWEHEU, :
А если юзер передумает?
Логичнее проверять что он нажал: если число, то переход, если Ентер, то выбор.
#include <stdio.h>
int main(){
int x;
char c;
scanf("%c", &c);
if( (c >= '0')&&(c <= '9') ){
ungetc(c, stdin);
scanf("%i", &x);
printf("Number: %i\n", x);
}else{
printf("Char: [%c](%i)\n", c, (int)x&0xFF);
}
}
Но лучше бы уж сделали нормальную навигацию стрелочками вверх - вниз. И выбранный пункт подсвечивать. Либо ESC-последовательностью, либо просто рисовать > выбранный_пункт <