这就是我现在所拥有的:
int main() {
int number;
printf("Type your number: ");
scanf("%i",&number);
char code[4];
printf("Type your code: ");
scanf("%s",&code);
当我在第一个中输入任何数字而不是数字时,脚本会变得疯狂,它只显示
输入您的号码:NOTaNUMBER
输入您的代码:THErestOFtheSCRIPT
- 返回命令行
我想要它做的是
输入您的号码:NOTaNUMBER
您没有输入数字
- 返回命令行
我该怎么做?
这与上述副本不同。我在这里谈的是C,而不是C ++。
C不知道cin
,即所述副本的答案。但是,在下面找到了答案
答案 0 :(得分:1)
使用输入字符串
scanf("%s",code);
或更好
scanf("%3s",code);
检查scanf返回的数字使用值的正确输入:
char ch;
if( 1 == scanf("%i",&number) )
{
// use correct number
}
else
{
// clean input bufer
while( (ch = getchar()) != '\n' && ch != EOF);
}