C语言【scanf函数细节问题 笔记】

函数一般形式:scanf(格式控制字符串,地址序列)
格式控制字符串:用来控制以什么格式输入数据
地址序列:把输入的数据依次放入到对于的地址的内存中去

scanf("a=%f,b=%f,c=%f",&a,&b,&c);
在dos窗口(小黑窗口中输入数据时应在对应的位置上输入同样的字符,既
a=1,b=2,c=3
而不是输入:1 2 3 这样就错了
因为系统会把它和scanf函数中的格式字符串逐个对照检查,是否匹配相同

1.对于用”%c“格式字符输入字符时,空格字符和转义字符中的字符都作为有效字符输入,比如:

scanf("%c%c%c",&a,&b,&c);
在小黑窗中输入字符时,连续输入三个字符即可,中间不可有空格,如果输入空格了,
比如:a b c 这时第一个字符'a'送给变量a,第二个字符是空格' '送个变量b ...

2.对于"%d"格式输入数据时,连续输入的数据间要用空格来隔开,以使系统区分两个数值,上面之所以不隔开是因为输入的是字符,系统能区别两个字符且空格等也是有效字符,除非格式控制符中存在普通字符,这是就要对照格式输入相应的数据

3.在输入数值数据时,如果输入空格、回车、tab键或非法字符(不输入数值的字符)时,认为该数据输入结束

4.对于”%s"格式输入字符串时,连续地输入字符串也要用空格来隔开

char str1[5],str2[5],str3[5];
scanf("%s%s%s",str1,str2,str3);
在dos小黑窗口中输入数据:abc cde fhg   因为有空格符号,系统会把这三个字符串分别送入到str1,str2,str3数组中
char str[13]
scanf("%s",str);
在dos窗口中输入数据:how are you?	因为系统把空格符作为输入数据之间的分隔符号,所以在这里系统只把”how“送入到str中
  • 11
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值