字符型数据的输入问题

来源:百度知道 编辑:UC知道 时间:2024/06/24 13:44:06
我在学习字符型数据的时候,在输入格式上遇到了问题。比如(CR表示回车):
1.可以在格式说明串中加入空格,如
scanf(“%c %c %c”,&a,&b,&c);
输入的形式可以是ABC<CR>,也可以是A空格空格B空格C<CR>.请问这种输入方法中的空格个数有规定吗?如果有,具体是怎样规定的?
2.交叉输入数值数据 和字符数据时。
例:有以下定义语句和输入语句
int a1,a2; char c1,c2;
scanf(“%d%c%d%c”,&a1,&c1,&a2,&c2);
必须用一下形式输入数据
10A两个空格20B<CR>.请问这里为什么要加两个空格??

若输入 a<CR>bc<CR>de<CR> 则程序的输出是这 3 行:
a
bc
d

用你的方式表达输出的话,则是:
a<CR>bc<CR>d

每一个回车都是一个字符:2 个回车 + 4 个字母 == 6 个字符。

原因是程序里的 for 语句只执行循环体 6 次,而循环体的每一次执行所完成的操作是:
1)通过 getchar( ) 读取标准输入上的一个字符,并把该字符赋值给 ch
2)通过 putchar( ) 把 ch 输出到标准输出上去

即是说,程序会把标准输入上的前 6 个字符按序输出到标准输出上去。

其实程序里的 ch 没有必要。 要达到同样的效果只需写:

#include <stdio.h>

void main( ) {
int i;
for ( i = 0; i <= 5; i++ )
putchar( getchar( ) );
}

不加空格不能运行啊