首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

关于C的一个输入有关问题,请各位帮忙!

2012-03-23 
关于C的一个输入问题,请各位帮忙!!#includestdio.hintmain(intargc,char*argv[]){chara[4]charb[4]pri

关于C的一个输入问题,请各位帮忙!!
#include   <stdio.h>

int   main(   int   argc,   char*   argv[]   )
{
          char   a[4];
          char   b[4];
          printf(   "Input   1:\n "   );
          scanf(   "%3s ",   a   );
          printf(   "a   =   %s\n ",   a   );
   
          printf(   "Input   2:\n "   );
          scanf(   "%3s ",   b   );
          printf(   "b   =   %s\n ",   b   );

          return   0;
       
}

如上程序:
当a输入的字符数过多时
b就直接获得a截取后的字符。
比如:
Input   1:
qwertyyuio
a   =   qwe
而b的值就自动为rty,不需要再次输入
这不符合我的愿望

这个问题如何解决?谢谢啦!!!


[解决办法]
如果 fflush(stdin); 不能解决你的问题,
这个也是可能的,
因为 fflush(stdin); 是标准未定义的行为,
但是一般情况下都是有效的,
如果不是,
那么可以使用如下的方法:
scanf( "%3s%*s ", a ); //%*s 接收剩余的所有字符并丢弃,那么就不会有参与字符了
printf( "a = %s\n ", a );

printf( "Input 2:\n " );
scanf( "%3s ", b );

热点排行