| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1472 人关注过本帖
标题:程序中遇到的scanf问题
只看楼主 加入收藏
liaojunwu
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2016-7-27
结帖率:0
收藏
 问题点数:0 回复次数:5 
程序中遇到的scanf问题
今天编写一个程序,最终找出是scanf问题所在,但百思不得其解,发上来求大神答疑
scanf("%d ",&a);为什么%d后面不能跟空格,我输入的时候输2 也不行,但是可以跟=与逗号,很奇怪。
图片附件: 游客没有浏览图片的权限,请 登录注册

图片附件: 游客没有浏览图片的权限,请 登录注册

图片附件: 游客没有浏览图片的权限,请 登录注册
2016-08-06 15:20
linlulu001
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:20
帖 子:944
专家分:4047
注 册:2016-4-13
收藏
得分:0 
scanf("%lf ")你用ctrl+z,如果是linux,用ctrl+d试试看

我估计你应该不明白scanf里的空白符的用法。
空白字符会使scanf函数在读操作中略去输入中的一个或多个空白字符。

所以你可以试试输入一个数字,然后输入一些空白符(回车,空格,tab之类的),然后再输入非空白符(也就是能在屏幕上显示的字符)。
我想你自己尝试之后应该就能明白它的用法了。

[此贴子已经被作者于2016-8-6 16:05编辑过]

2016-08-06 15:52
小牛
Rank: 1
等 级:新手上路
威 望:1
帖 子:434
专家分:8
注 册:2006-10-1
收藏
得分:0 

本店经营各类国际品牌运动鞋,板鞋,休闲鞋,有李宁,nike,匹克,阿迪达斯。
2016-08-08 11:47
zx315
Rank: 5Rank: 5
来 自:广东
等 级:职业侠客
威 望:2
帖 子:86
专家分:378
注 册:2016-7-13
收藏
得分:0 
调用 `scanf` 函数时,它会从左边开始处理格式串中的信息:

对于格式串中的转换说明,`scanf` 会从输入的数据中定位适当类型的项,在寻找输入数据的起始位置时,`scanf` 会跳过空白字符(如果转换说明为 `%c` 则不会跳过),包括空格符、水平和垂直制表符、换页符和换行符;然后读入数据项,并在遇到不可能属于此项的字符时停止(并会将该字符“放回原处”)。如果读入成功,那么 `scanf` 函数会继续处理格式串的剩余部分,否则会立即返回。

对于格式串中的普通字符,如果是空白字符(一个或多个), `scanf` 会从输入中重复读取空白字符直到遇到一个非空白字符为止,格式串中的一个空白字符可以与输入中任意数量(包括零个)的空白字符相匹配;如果是非空白字符, `scanf` 会将把它与下一个输入字符进行比较。如果两个字符相匹配,那么 `scanf` 会跳过输入字符然后继续处理格式串,如果不匹配,则将不匹配的字符放回输入中,然后异常退出。

注意:当 `scanf` 函数成功读取完所有的输入数据后,会将最后的换行符“放在原处”。

Read The Fucking Source Code~
2016-08-09 00:02
davidguhao
Rank: 1
来 自:广东
等 级:新手上路
帖 子:126
专家分:7
注 册:2016-7-18
收藏
得分:0 
一切留白在scanf函数中都被当成结束而且被无情丢弃

暨南大学市场营销……
但是我有一颗计算机专业的心……
2016-08-09 16:34
天降之物ff
Rank: 1
等 级:新手上路
帖 子:4
专家分:6
注 册:2016-9-16
收藏
得分:0 
你可以在“%d”前面加个‘*’看看效果,和空白符作用很相似
2016-10-08 09:35
快速回复:程序中遇到的scanf问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017497 second(s), 11 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved