我也遇到过这个问题,这个是因为scanf在接收到你给的第一行字符后,在要接收下一行字符时,把你留在缓存的回车字符接收了进来,然后就自动运行了(你输入回车换行的时候,回车字符会被记入缓存)。所以可以你scanf的语句后面跟一个语句来清空缓存。语句为: fflush( stdin ); 就可以实现读取多行了。
这个貌似只有分几次读了。linux3种模式下都不能屏蔽回车的问题。
请更详细地描述你的需求。比如说,给出输入数据的样例,2~3行即可。
嗯,如果只是想读取多行,char str[128];while (gets(str) > 0){;}即可
scanf("&d &d",a,b);
fflush(stdin);
scanf("&d &d",c,d);
fflush(stdin);
{ int a,b; printf(