Я проверяю ошибки на письма. Если введена буква, то ее предполагается распечатать ошибку и выйти. Если это число, то предполагается, что он должен выполнить оператор (который я не ввел в код с момента его несоответствия в данный момент) под if. Когда я ввожу число, он должен запускать оператор if, но когда я ввожу букву или число, он переходит к инструкции else.Ошибка проверки, если пользователь вводит письмо или номер
#include <stdio.h>
#include <ctype.h>
int main()
{
int x;
printf("Enter up to 10 positive integer ending with EOF:\n");
while((scanf("%d",&x)) != EOF && x < 100){
if(isdigit(x)){
//statement
}
else{
printf("error, wrong input\n");
return 0;
}
}
if(x >= 100)
printf("error, wrong input\n");
return 0;
}
Компилятор Си не заботится о том, что отступы, но это довольно запутанным для меня. – davejagoda
Вам не нужно проверять с помощью 'isdigit'. 'scanf' с'% d' уже проверяет, может ли вход обрабатываться как целое число. А также преобразует входные символы в целое число при успешном выполнении. Он вернет '1', если вход может быть проанализирован как целое и' 0' в противном случае. Итак, вам нужно только проверить 'if (x> = 0 && x <= 9)', чтобы выполнить эквивалентную проверку isdigit (хотя я подозреваю, что вы действительно просто хотите проверить, является ли вход целым, а не цифра). – kaylum