2007
07-28

#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


》有 1 条评论

  1. zsvc 说:

    因为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

    有兴趣的朋友一起学呀!!!呵呵。。。。

留下一个回复