... ...
int a,b,c
scan("%d%d%d",&a,&b,&c);
输入应该是数字,如:1980 06 21
但是如果输入字母或者其他字符,则系统也按ASCII码接受,怎么拒绝
数字以外字符
C++从scanf读入年月日怎么确认用户输入的是数字
答案:2 悬赏:0 手机版
解决时间 2021-04-04 17:49
- 提问者网友:温旧梦泪无声
- 2021-04-04 01:49
最佳答案
- 五星知识达人网友:不如潦草
- 2021-04-04 01:56
scanf其实是有返回值的,它返回的是接受到的正确的输入参数的个数。如果你输入的是1980 06 21,那么函数返回3,如果你输入1980 a 21,那么函数返回2,如果你输入a b c,那么函数返回0。因此你可以用if(3==scanf("%d%d%d",&a,&b,&c))来判断输入是否正确。
另外说一下,输入字符时,系统并不是按ASCII码接受,你可以printf测试一下。
另外说一下,输入字符时,系统并不是按ASCII码接受,你可以printf测试一下。
全部回答
- 1楼网友:春色三分
- 2021-04-04 02:49
输入以上格式字符串,程序会读取第一行的第一个字符串和第二行的第一个字符串并输出,
//---------------------------------------------------------------------------
#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;
}
//---------------------------------------------------------------------------
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯