QQ登录

只需一步,快速开始

登录 | 立即注册 | 找回密码

主题

帖子

荣誉

VIP至尊会员

Rank: 15Rank: 15Rank: 15

积分
61
查看: 346|回复: 7

[已解决]学scanf函数的时候,突然想到一个问题

[复制链接]
最佳答案
0 
累计签到:28 天
连续签到:1 天
高山流水i 发表于 2018-3-11 14:32:29 3467 | 显示全部楼层 |阅读模式

马上注册加入鱼C,享用更多服务吧^_^

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
为什么有些程序需要scanf函数接收从键盘输入的字符等,有些函数不需要呢?
最佳答案
2018-3-11 15:24:48
因为scanf 遇到空格或者制表符之类的就停了,你觉得他适合去接收一个英文句子吗。
打个比方~ 你要输入一个 i love fishc.com!
你觉得scanf能胜任吗~ 显然不能~他从i开始读,看到i后面是空格,然后他就把i存到变量里面~然后它就跑路了。。。

那为什么getchar() 可以,因为。。。getchar就不嫌弃什么空格啊 回车啊 制表符啊~ 照单全收。一个个收~
111.png
楼层
跳转到指定楼层
最佳答案
0 
累计签到:28 天
连续签到:1 天
高山流水i  楼主| 发表于 2018-3-11 14:33:29 | 显示全部楼层
为什么第七行printf函数不用跟一个scanf函数接收输入的英文
最佳答案
0 
累计签到:28 天
连续签到:1 天
高山流水i  楼主| 发表于 2018-3-11 14:36:50 | 显示全部楼层
为什么这个函数需要scanf函数呢
222.png
最佳答案
72 
累计签到:364 天
连续签到:1 天
Charles未晞 发表于 2018-3-11 14:59:24 | 显示全部楼层
getchar()就是在输入缓冲区顺序读入一个字符(包括空格、回车和Tab)
最佳答案
63 
累计签到:224 天
连续签到:1 天
风过无痕丶 发表于 2018-3-11 15:24:48 | 显示全部楼层    本楼为最佳答案   
因为scanf 遇到空格或者制表符之类的就停了,你觉得他适合去接收一个英文句子吗。
打个比方~ 你要输入一个 i love fishc.com!
你觉得scanf能胜任吗~ 显然不能~他从i开始读,看到i后面是空格,然后他就把i存到变量里面~然后它就跑路了。。。

那为什么getchar() 可以,因为。。。getchar就不嫌弃什么空格啊 回车啊 制表符啊~ 照单全收。一个个收~
最佳答案
1128 
累计签到:365 天
连续签到:2 天
BngThea 发表于 2018-3-11 17:51:58 From FishC Mobile | 显示全部楼层
功能不同
最佳答案
1 

尚未签到

夜猫子侠客 发表于 2018-3-12 10:47:45 | 显示全部楼层
getchar是从stdin中接收一个字符,而scanf是根据变量类型来接收字符,比如%d,就只能来接收int变量,像I love fishc.com! 这种类型的“字符串”形式,可以用string头文件中的gets函数(注意,不能用scanf %s 的形式!)
最佳答案
0 
累计签到:28 天
连续签到:1 天
高山流水i  楼主| 发表于 2018-3-13 19:17:01 | 显示全部楼层
Charles未晞 发表于 2018-3-11 14:59
getchar()就是在输入缓冲区顺序读入一个字符(包括空格、回车和Tab)

感谢你

发表回复

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

本版积分规则

关闭

小甲鱼强烈推荐 上一条 /1 下一条

    移动客户端下载(未启用)
    微信公众号

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备11014136号

Copyright 2018 鱼C论坛 版权所有 All Rights Reserved.

Powered by Discuz! X3.3 Copyright
© 2001-2018 Comsenz Inc.    All Rights Reserved.

小黑屋|手机版|Archiver|鱼C工作室 ( 粤公网安备 44051102000370号 | 粤ICP备11014136号

GMT+8, 2018-6-23 16:07

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