关于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 );