C - 如何检查输入的数字
如何简单而正确地检查用户是否输入数字而不是C语言中的字符或字符串?我试图写一些循环包含:C - 如何检查输入的数字
if (scanf("%d",&number)=1)
但他们从来没有工作或结束。当输入一个数字时循环应该结束。
我想你想要这样的:
for (scanf(" %d", &number); (number < -100 || number > 100); scanf(" %d", &number)) {
printf("you didn't enter a valid number, try again >");
}
好吧,请记住'isdigit'带有一个字符,并告诉你该字符是否是字符'0'到'9'中的一个字符。 –
是的,这有助于了解上下文。但是我们也不知道他不想要大于9或小于1的数字,所以测试'number> = 1 && number
上下文并不重要。我只有几个程序需要验证,如果输入的值是一个数字(不只是一个数字)。例如,数字可以从-100到100.如果用户输入一个字母或其他东西,那么应该显示一条消息,表示输入的值不正确,用户必须再次输入该值。这应该继续,直到输入一个数字。 –
这是否适合您的上下文:
char ch;int g;
for(ch=getc(stdin);isalpha(ch);ch=getc(stdin))
{
printf("\nenter numbers only");
while(isalpha(getc(stdin))){}
}
ungetc(ch,stdin);
scanf("%d",&g);
printf("number entered %d",g);
你行应该仅仅是: if (scanf("%d",&number)){
如果输入比其他一些东西,它将导致:if(0){
,而不是if(1){
我不认为这样的东西应该编译。 – MByD
一些示例代码将帮助 –
@user:提高编译器的警告级别,**介意警告** – pmg