Допустить ввод только цифр - 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; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д