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 又该怎么操作呢?
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输入三个字母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是实现不了的。需要一些转换。