#include “stdio.h”
void main()
{
char a[6],b[6],c[6],d[6];
scanf(“%s%s”,a,b);
gets(c);
gets(d);
puts(a);
puts(b);
puts(c);
puts(d);
}
当输入aaa bbb
ccc ddd
后为什么输出的是
aaa
bbb
ccc ddd
>> 本文固定链接: http://www.vcgood.com/archives/1751
#include “stdio.h”
void main()
{
char a[6],b[6],c[6],d[6];
scanf(“%s%s”,a,b);
gets(c);
gets(d);
puts(a);
puts(b);
puts(c);
puts(d);
}
当输入aaa bbb
ccc ddd
后为什么输出的是
aaa
bbb
ccc ddd
>> 本文固定链接: http://www.vcgood.com/archives/1751
你必须先 登录才能发表评论。
因为scanf(%s%s,a,b);
它把“空格”和“换行”认为一个串的结束符;
输入aaa 被变量a接收, 以空格为结束符;
输入bbb被变量b接收, 因为在windows下回车是c语言中\r\n组成的。
而scanf()接收到\r就表是下一个串了。所以gets(c)接受了\n;
后gets()是以“换行”为结束的。空格也做为串中的一个字符。一起被d所有接收。所以输出的结果为
aaa
bbb
ccc ddd
本人学的不好要是有错误请指教。本人的QQ:271280648
e_mail:zsvc@163.com
有兴趣的朋友一起学呀!!!呵呵。。。。