永发信息网

C语言的SCANF函数

答案:4  悬赏:20  手机版
解决时间 2021-04-21 21:50

c语言中

scanf函数里如果是输入3个数字 123

使用scanf("%d%d%d",&a,&b,&c);

虽然格式控制%d%d%d中没有空格间隔

在输入时却必须加上空格或者回车

而当使用SCANF输入三个字母abc的时候 如果%c%c%c中间不加上空格 那么就必须连续输入abc加上空格的时候就必须输入a b c

这是英文和数字的差异么?因为字母最大长度为1 而数字长度为无限么?

如果我想在输入数字的时候可以连续输入123而它也能读取1 2 3 又该怎么操作呢?

最佳答案
scanf默认以空格字符划分输入(空格,tab,换行之类的)
输入数字的时候,如果你连续读入,scanf是没法区分各个输入的,除非限定输入宽度:

scanf( "%1d%1d%1d", &a,&b,&c );
这样就可以确保每个int只读取1个字符长度的数字
全部回答

你的第一问:当使用SCANF输入三个字母abc的时候 %c%c%c是指 连续取字符且一个%c只取一个字符。

如果加空格,那你就必须输a b c,因为格式要求有一个空格,所以要多输一个空格,其余规则和上述类

同。

你的第二问:这不是英文和数字的差异。长度都为1。

你的第三问:输入数字的时候可以连续输入123而它也能读取1 2 3,如果还用scanf函数,那123只能是字符型。这样操作:scanf("%c%c%c",&a,&b,&c);

对于数字, 你可以看一下,你定义的是整型变量,所以每个变量的取值都在-32768到32767之间,所以你输入123时,他只会认作一个整形数字,不会当作三个数字。所以很有必要使用空格,当然,你不想使用空格的话,可以这样做:scanf("%d,%d,%d",&a,&b,&c);输入方式:1,2,3(注意逗号)。

对于字符,一个%c只认一个字符,所以在你输入abc之间没有空格时,它自己会识别的。

%d是输入整型数据,如果连续输入123,则视为一个数据。%c是输入字符型数据,连续输入abc,则视为三个字符。至于最后一个问题,我认为单凭scanf是实现不了的。需要一些转换。

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
qq空间为什么不能全屏
表达孝顺父母的句子,有关孝顺和感恩的文章
求:下一站,幸福。全集观看网站。
我进入BIOS→Advanced 菜单后,只有LEGACY US
山楂水和梨汁可以同饮吗
什么是线性诱导标志
食园饭庄这个地址在什么地方,我要处理点事
简单的问题。送分了。
火车上能带多少白酒,坐火车每人可以带多少酒
要看城市相片要上那个网站
储存卡在电脑上怎么格
不挑食可以帮助长个子吗?还有晚上迟睡会影响
红灯笼茶坊地址在什么地方,想过去办事
冬天怎么预防冻耳朵?
夏天出游口号,运动会啦啦队口号最新最霸气的
推荐资讯
小孩瘦小,我有点怀疑是我的奶水不好,再加上我
悲伤的歌有没好听点的,要新的!
DNF.召唤师的冰影学多少级比较好??
阴阳师御魂单刷组队怎么刷
夏县新型农村合作医疗管理中心怎么去啊,有知
请问谁会用淘宝助理3?抽空给我上上课,谢谢
中国字典中笔划最多是多少笔吗?
在PPS里不能输汉字 也没输入法图标也不能切换
黑暗侵袭2什么时候能有高清版本?
QQ会员有多少个等级
谁有经典的送别诗啊?
川香源饭店怎么去啊,有知道地址的么
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?