永发信息网

C++从scanf读入年月日怎么确认用户输入的是数字

答案:2  悬赏:0  手机版
解决时间 2021-04-04 17:49
... ...
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测试一下。
全部回答
输入以上格式字符串,程序会读取第一行的第一个字符串和第二行的第一个字符串并输出, //--------------------------------------------------------------------------- #include using namespace std; int main(int argc, char* argv[]) { char t[20],a[20]; scanf("%[^ ]%*[^\n]%*c%s",t,a); printf("%s\n%s\n",t,a); return 0; } //---------------------------------------------------------------------------
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
柯南到底喜欢谁??到底爱谁????
自由客装后视镜导航一体机从什么地方取电才不
怎样快速让自己的脸变瘦变长
天津市三甲医院门特报销比例是多少?
急求500好友,死粉什么都行
阅读下列资料回答问题:资料1:据报道,今年
我想在居委会开急诊住院探亲证明可以吗
问:我用的是铁塔淡奶油打发的奶油,但是味道
北方用电信宽带怎么样,有线电视的宽带好不好
梅菜扣肉(简略版)怎么做
梦见别人被车撞死流了好多血,还弄了自己一头
戴尔04GJJT的板子能换什么样的显卡?原来的是
比喻青春的句子带涛字,带涛字的古诗文哲理句
Look! I’m Tom. This is a pencil case. It
足球名将吉格斯现在在哪儿
推荐资讯
求2016初音未来演唱会北京站的资源
单选题自然界种类和数量最多的动物类群是A.软
天津去兰州的火车k888四车厢的座位表
汉朝婚礼过程多少钱
《你来过很优秀》作者感悟
请问要在下面图片中的石料上打孔,应该用那种
大神,求跪带“蕊”和“涛”的8字爱情短句
Generally speaking, it is about on the mo
傲慢与偏见一句话感想,郭冬临2010春晚小品《
新建网站打不开了,无论是ftp还是界面。。都
原谅我 你的过去我来不及参预 我只想念你现在
vga转dvi插在显卡链接显示器黑屏
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?