飞虎钟韦恩真实身份:第一个输入d e f为什么赋值是那样?教材是不是出错了?

来源:百度文库 编辑:高校问答 时间:2024/05/03 02:06:48
d. 在输入字符数据时,若格式控制串中无非格式字符,则认为所有输入的字符均为有效字符。例如:
scanf("%c%c%c",&a,&b,&c);

输入为:

d e f

则把'd'赋予a, 'f'赋予b,'e'赋予c。只有当输入为:

def

时,才能把'd'赋于a,'e'赋予b,'f'赋予c。 如果在格式控制中加入空格作为间隔,如 scanf ("%c %c %c",&a,&b,&c);则输入时各数据之间可加空格。

教材错了。

第一个例子告诉你,控制串中无非格式字符,输入的字符均为有效字符。

第一例
若输入的字符是 d白e白f 共5个
a得到d,b得到白,c得到e,多余的"白f"略去不管。

第一例
若输入的字符是 def 共3个
a得到d,b得到e,c得到f.

第二例,控制串中有非格式字符"白"
若输入的字符是 d白e白f 共5个
则:a得到d,b得到e,c得到f.

真是的,我用TC验证了一下,结果是一样了

o