鱼C论坛

 找回密码
 立即注册
查看: 1745|回复: 2

新人求助,关于c语言的问题!

[复制链接]
发表于 2015-2-17 09:21:38 | 显示全部楼层
scanf 和 gets的机制:
它们都在stdio.h中定义,用来接收用户输入,但是传入的参数又有些不同
scanf (const char*, ...);
gets (char*);
scanf不能接受空格、制表符Tab、回车等;
而gets能够接受空格、制表符Tab和回车等;
scanf :当遇到回车,空格和tab键会自动在字符串后面添加'\0',但是回车,空格和tab键仍会留在输入的缓冲区中。所以很多时候在scanf之后可能需要清空缓存区
gets:可接受回车键之前输入的所有字符,并用'\n'替代 '\0'.回车键不会留在输入缓冲区中

另外,其实scanf也是可以达到gets的效果的,你可以这样做
scanf("%[^\n]s",inputStr); 那么它只会在回车的时候结束输入的

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-10-10 06:57

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表