Как правильно обрабатывать исключительные ситуации ?
Необходимо проверять вводимые данные, если данные от 1 - 10 то все норм, если иначе, то вывод "Введите цифру" от 1 - 10 " ....
scanf( "%s", czC );
while ( ( c = atoi( czC ) ) == 0 ) {
puts("Вы должны vvesti chislo [1 - 100] libo -1 dlya dosrochnogo zaversheniya raboty.");
scanf( "%s", czC );
}Вот так правильно ?
> scanf( "%s", czC );
> while ( ( c = atoi( czC ) )
> == 0 ) {
> puts("Вы должны vvesti chislo [1 -
> 100] libo -1 dlya dosrochnogo zaversheniya raboty.");
> scanf( "%s", czC );
> }
> Вот так правильно ?int x = 0;
while (x < 1 || x > 10) {
printf("Input number from 1 to 10, or -1 to quit\n");
scanf("%d", &x);
if (x == -1) break;
}
Okey, I will try ....
А вот %d смущает, что будет если пользователь по ошибке нажмет букву, или пробел там ?
> А вот %d смущает, что будет если пользователь по ошибке нажмет букву,
> или пробел там ?Всё правда - это извечная проблема с функциями типа printf() и scanf().
Тогда можно так (по мотивам http://stackoverflow.com/questions/14099473/how-to-scanf-onl...):
int x = 0;
while (1) {
printf("Input number from 1 to 10, or -1 to quit\n");
scanf("%d", &x);
if (x >= 1 && x <= 10 || x == -1) break;
while (getchar() != '\n');
}
Okey, I will try ....
посмотри в ctype.h
> посмотри в ctype.hOk, понял ....
int isdigit(int c);//Возвращает ненулевое значение, если её аргумент является десятичной цифрой, в противном случае возвращается нульЭто ?