C语言 scanf读取多行的问题

我用的GCC编译器,每次想读入多行变量,一打回车程序就自动运行了,怎么在scanf出现的那个框框中打多行字符,除了回车还有什么能换行的方法(tab也试过了,没用)... 我用的GCC编译器,每次想读入多行变量,一打回车程序就自动运行了,怎么在scanf出现的那个框框中打多行字符,除了回车还有什么能换行的方法(tab也试过了,没用) 展开
 我来答
牧天黑手
2011-07-16 · TA获得超过109个赞
知道小有建树答主
回答量:63
采纳率:0%
帮助的人:65.8万
展开全部
我也遇到过这个问题,这个是因为scanf在接收到你给的第一行字符后,在要接收下一行字符时,把你留在缓存的回车字符接收了进来,然后就自动运行了(你输入回车换行的时候,回车字符会被记入缓存)。所以可以你scanf的语句后面跟一个语句来清空缓存。语句为: fflush( stdin ); 就可以实现读取多行了。
forest0823
2011-07-15
知道答主
回答量:22
采纳率:0%
帮助的人:9.8万
展开全部
这个貌似只有分几次读了。linux3种模式下都不能屏蔽回车的问题。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
冰火梦幻
2011-07-15 · TA获得超过2308个赞
知道小有建树答主
回答量:1095
采纳率:57%
帮助的人:429万
展开全部
请更详细地描述你的需求。比如说,给出输入数据的样例,2~3行即可。
嗯,如果只是想读取多行,char str[128];while (gets(str) > 0){;}即可
追问
比如一行输入一个array
1 2 3
4 5 6
7 8 9
每次打完1 2 3按回车就自动运行了
追答
如果想读完所有输入才运行的话,只有在输入的最后加上一个Ctrl+Z吧……
从程序功能来说,是输入一行就运行,和输完所有行才开始读,其实也没区别吧
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
amymayadi
2012-08-10
知道答主
回答量:1
采纳率:0%
帮助的人:1600
展开全部
scanf("&d &d",a,b);

fflush(stdin);
scanf("&d &d",c,d);
fflush(stdin);

参考资料: 百度百科scanf http://baike.baidu.com/view/1390039.htm

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yangdai82
2011-07-15 · TA获得超过110个赞
知道答主
回答量:317
采纳率:50%
帮助的人:0
展开全部
{ int a,b; printf(
追问
你写的什么?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式