输入无效时忽略C scanf
我写了这段代码,它要做的就是输入整数,直到输入负数:输入无效时忽略C scanf,c,scanf,C,Scanf,我写了这段代码,它要做的就是输入整数,直到输入负数: int result = 0, input_number = 0; while(input_number >= 0){ printf("Please enter students IDs(negetive to stop)= "); result = scanf("%d", &input_number); if(result != 1){ printf("Invalid input! t
int result = 0, input_number = 0;
while(input_number >= 0){
printf("Please enter students IDs(negetive to stop)= ");
result = scanf("%d", &input_number);
if(result != 1){
printf("Invalid input! try again...\n");
continue;
}
}
当输入为int时,一切正常
但当输入字符时,任何字符都不是int
循环变得无休止,scanf不再请求任何输入
不要建议我使用scanf的替代品,因为这是学校的工作,
必须使用scanf
输入字符输出后:
Please enter students IDs(negetive to stop)= 4
Please enter students IDs(negetive to stop)= 5
Please enter students IDs(negetive to stop)= r
Please enter students IDs(negetive to stop)= Invalid input! try again...
Please enter students IDs(negetive to stop)= Invalid input! try again...
Please enter students IDs(negetive to stop)= Invalid input! try again...
Please enter students IDs(negetive to stop)= Invalid input! try again...
Please enter students IDs(negetive to stop)= Invalid input! try again...
Please enter students IDs(negetive to stop)= Invalid input! try again...
...
读取字符串,%s是格式说明符,然后在代码中转换为int。如果你是C++,AtoI或Struto就可以工作。 C或C++
C++继续;->scanf%*[^\n];持续马克-我试过了,没有效果;谢谢蓝精灵!工作!