测试环境:VC++ 6.0 和VS2010
在使用scanf函数时,空白字符会使scanf函数在读操作中略去输入中的一个或多个空白字符。
当使用空白字符时,测试代码如下:
#include<stdio.h>
#include<stdlib.h>
void main()
{
char a[5];
for(int i=0;i<=4;i++)
{
scanf("%c ",&a[i]);
}
for(int j=0;j<=4;j++)
{
printf("%c ",a[j]) ;
}
}
输出结果如下:
程序里面是设置的循环五次,但是输入五个字符后,enter键后根本五输出,当输入第六个字符后enter才会输出,输出的是前五 个字符。
如果把空格键改为逗号或者其他非空白字符作为间隔符,则没有问题,代码如下:
#include<stdio.h>
#include<stdlib.h>
void main()
{
char a[5];
for(int i=0;i<=4;i++)
{
scanf("%c,",&a[i]);
}
for(int j=0;j<=4;j++)
{
printf("%c ",a[j]) ;
}
}
测试结果如下: