歌词星星点点女生:C++从scanf读入年月日怎么确认用户输入的是数字

来源:百度文库 编辑:高校问答 时间:2024/05/08 13:03:07
... ...
int a,b,c
scan("%d%d%d",&a,&b,&c);
输入应该是数字,如:1980 06 21
但是如果输入字母或者其他字符,则系统也按ASCII码接受,怎么拒绝
数字以外字符

scanf其实是有返回值的,它返回的是接受到的正确的输入参数的个数。如果你输入的是1980 06 21,那么函数返回3,如果你输入1980 a 21,那么函数返回2,如果你输入a b c,那么函数返回0。因此你可以用if(3==scanf("%d%d%d",&a,&b,&c))来判断输入是否正确。

另外说一下,输入字符时,系统并不是按ASCII码接受,你可以printf测试一下。