请问C语言中这个FOR循环几次?例如:当N=2时,GETS为什么只读入一次?

[复制链接]
查看11 | 回复3 | 2011-3-9 13:12:35 | 显示全部楼层 |阅读模式
当n=2,for循环2次,你感觉只读取一次是因为scanf("%d",&n);这里你输入2,回车,scanf读入2,而回车被gets读取了,也就是说,第一次gets读取了 回车 ,第二次读取了你后来输入的数字。...
回复

使用道具 举报

千问 | 2011-3-9 13:12:35 | 显示全部楼层
由于scanf("%d",&n);只能识别“2回车”中的2,而回车被送入gets中,所以gets是读入了两次,一次是回车,一次是你输入的。而如果你输入的是如2 asd回车则输出一次asd,再打入如sddh回车则在输出一次sddh这就是两次了...
回复

使用道具 举报

千问 | 2011-3-9 13:12:35 | 显示全部楼层
因为回车也属于字符,在你输入2的时候,接着的一个回车被数组a截获了,而且回车键是个补课打印的字符,所以在i=0的时候实际上是输出的那个回车键的字符,但在屏幕上显示不出来,接着执行第二次循环,由用户输入,所以最后结果就只显示你输入的那一次结果...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行