C语言编程问题

[复制链接]
查看11 | 回复5 | 2013-5-6 15:46:10 | 显示全部楼层 |阅读模式
gets(s)函数与scanf("%s",s)相似,但不完全相同,使用scanf("%s",s) 函数输入字符串时存在一个问题,就是如果输入了空格会认为字符串结束,空格后的字符将作为下一个输入项处理,但gets()函数将接收输入的整个字符串直到遇到换行为止。...
回复

使用道具 举报

千问 | 2013-5-6 15:46:10 | 显示全部楼层
最前面一个scanf还会在缓冲区留下一个回车,gets的时候缓冲区还有内容,就读取了这个回车结束了第一个字符串。gets会把缓冲区清空。但是scanf只会从缓冲区读取字符串,不会把回车也读走。...
回复

使用道具 举报

千问 | 2013-5-6 15:46:10 | 显示全部楼层
用gets的时候后面要跟上getchar();才可以,至于跟几个看你的电脑,绝大多数跟一个getchar();就可以了,少数的需要连跟两个,这个的意思是把回车给吃掉,因为用过gets后,你输入完成敲的回车它也默认为一个字符了,得把它吃掉才可以...
回复

使用道具 举报

千问 | 2013-5-6 15:46:10 | 显示全部楼层
你好,你定义的数组太小了。把#define N 3 改成#define N 20...
回复

使用道具 举报

千问 | 2013-5-6 15:46:10 | 显示全部楼层
你要在每个 gets(str); 的前面加上fflush(stdin);这句话。就ok了。...
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行