关于scanf(初学VC)谢谢!

来源:百度知道 编辑:UC知道 时间:2024/05/27 20:06:07
#include<stdio.h>
void main()
{char a[6],b[10];
int i;
for(i=0;i<5;i++)
scanf("%c",&a[i]);
a[5]='\0';
scanf("%s",b);
printf("%s\n%s",a,b);}
上面有2个scanf,我用VC6.0执行的时候进行输入操作,输入完第一个scanf的内容后怎样再输入第二个?回车吗?(要是第一个没有输入满算什么);为什么我连续输入HELLOWORLD,输出的时候电脑把WORLD算作第二个scanf的内容?是因为第一个满了吗? 这个字符数组用scanf又和gets()有什么区别?哪个常用、方便?

输入第二个回车空格都行,第一个没有输入满就不会输入第二个。
你输入的HELLO赋给了a[0]-a[4],而a[5]你已经赋值了,因为你定义的是char字符型,所以一个a[i]只能装入一个字符,
所以HELLO五个字符后的字符当然是给b了。
一般都用scanf,gets是读入一个字符串,而scanf是读入一个字符。

mark