Допустить ввод только цифр - C (СИ) (76215)
Формулировка задачи:
Так и не нашел удобных функций контроля ввода.
Вводится символьная строка (до 7 символов) Надо проверить что все символы цифры.
конструкции с atoi не работает. Конструкция с strtol
вызывает assert при недопустимом вводе, т.е. тоже не годится
Остается вроде единственный вариант - проверке каждого введенного символа в цикле с помощью isdigit
Но это громоздко.
Неужели нет удобного варианта?
do {
printf("Enter str\n"); scanf("%s",str);
j=strtol(str,&end);
} while(end != NULL);Решение задачи: «Допустить ввод только цифр»
textual
Листинг программы
#include <stdio.h>
#include <string.h>
int main(void)
{
char eol = 0;
char input[8] = "";
while (1)
{
printf("> ");
if(scanf("%7[0-9]%c", input, &eol) != 2 || eol != '\n') {
printf("bad\n");
scanf("%*[^\n]");
scanf("%*c");
}
else {
printf("good\n");
}
printf("[len = %d data = %s]\n", strlen(input), input);
}
return 0;
}