- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
详解scanf函数
详解scanf函数
详解scanf函数
函数名: scanf
功能: 执行格式化输入
用法: int scanf(char *format[,argument,...]);
scanf()函数是通用终端格式化输入函数,它从标准输入设备(键盘) 读取输入的信息。可以读入任何固有类型的数据并自动把数值变换成适当的机内格式。
其调用格式为:scanf(格式化字符串,地址表);
scanf()函数返回成功赋值的数据项数,出错时则返回EOF。
其控制串由三类字符构成:
1。格式化说明符;
2。空白符;
3。非空白符;
格式化字符串的一般形式为:[赋值抑制标记][字段宽度][精度]类型说明符其中方括号[]中的项为可选项。
赋值抑制标记*:该字符命令scanf按当前的转换说明符进行转换,但忽略转换后的结果,即不将它赋给任何变量。
字段宽度:用于指定输入字段的宽度,如果没有指定,则以空白作为结束标记。
精度:是一个字符,可以是h、l、L,用于改变它后面的类型说明符的含义。
L/l 长度修饰符输入长数据
h 长度修饰符 输入短数据
hh,ll同上h,l但仅对C99有效。
h: 用于类型说明符d、i、o、u、x、X、n前,指定参数是指向short int或unsigned short int的指针。
l: 用于类型说明符d、i、o、u、x、X、n前,指定参数是指向long或unsigned long的指针。用于类型说明符a、A、e、E、f、F、g、G前,指定参数是指向double的指针。
L: 用于类型说明符a、A、e、E、f、F、g、G前,指定参数是指向long double的指针。
hh: 用于类型说明符d、i、o、u、x、X、n前,指定参数是指向signed char或unsigned char的指针。
ll: 用于类型说明符d、i、o、u、x、X、n前,指定参数是指向long long或unsigned long long的指针。
转换说明符
格式字符说明
%a 读入一个浮点值(仅C99有效)
%A 同上
%c 读入一个字符
%d 读入十进制整数
%i 读入十进制,八进制,十六进制整数
%o 读入八进制整数
%x 读入十六进制整数
%X 同上
%s 读入一个字符串,并在末尾加上空字符。
%f 读入一个浮点数
%F 同上
%e 同上
%E 同上
%g 同上
%G 同上
%p 读入一个指针
%u 读入一个无符号十进制整数
%n 至此已读入值的等价字符数
%[...]扫描字符集合,只读取方括号里面列出的字符。遇到不匹配的字符、达到指定的宽度或用户按下回车,立即停止读取。为读取]字符,应首先列出它[]...]。在字符串末尾加上空字符。
%[^...]与[...]相同,不过只读取方括号中没有列出的字符。
%% 读%符号,不执行任何赋值操作。
空白字符
空白字符会使scanf()函数在读操作中略去输入中的一个或多个空白字符,空白符可以是space,tab,newline等等,直到第一个非空白符出现为止。
非空白字符
一个非空白字符会使scanf()函数在读入时剔除掉与这个非空白字符相同的字符。
scanf()函数的控制串的使用
例1.
#i nclude stdio.h
int main(void)
{
int a,b,c;
scanf(%d%d%d,a,b,c);
printf(%d,%d,%d\n,a,b,c);
return 0;
}
运行时按如下方式输入三个值:
3□4□5 ↙(输入a,b,c的值)
3,4,5 (printf输出的a,b,c的值)
(1) a、b、c中的是地址运算符,分别获得这三个变量的内存地址。
(2) %d%d%d是按十进值格式输入三个数值。输入时,在两个数据之间可以用一个或多个空格、tab键、回车键分隔。
例2.
#i nclude stdio.h
int main(void)
{
int a,b,c;
scanf(%d,%d,%d,a,b,c);
printf(%d,%d,%d\n,a,b,c);
return 0;
}
运行时按如下方式输入三个值:
3,4,5 ↙(输入a,b,c的值)
或者
3,□4,□5 ↙(输入a,b,c的值)
3,□□□4,□5 ↙(输入a,b,c的值)
......
都是合法的,但是,一定要跟在数字后面,如:
3□,4,□5 ↙就非法了,程序出错。
再如:
1、sacnf()中的变量必须使用地址。
int a, b;
scanf(%d%d,a,b); //错误
scanf(%d%d,a,b);
2、scanf()的格式控制串可以使用其它非空白字符,但在输入时必须输入这些字符。
例:
scanf(%d,%d,a,b);
输入: 3,4 ↙(逗号与%d
您可能关注的文档
- 袁厉害.doc
- 被困Stranded 英语口语大全 应急英语口语[英文荟萃网].doc
- 被拍在浅滩的“达芬奇”.doc
- 裁剪放码 服装打版之--抄款容易,抄版难!.doc
- 补充各种维生素,.doc
- 装了 Linux 之后就感到迷茫、不知该干什么的朋友看过来.doc
- 装修了别后悔.doc
- 装修八:选购瓷砖攻略!.doc
- 装修协议文本文档.doc
- 装修名词吊顶板材.doc
- 半导体材料性能提升技术突破与应用案例分析报告.docx
- 半导体设备国产化政策支持下的关键技术突破与应用前景报告.docx
- 剧本杀市场2025年区域扩张策略研究报告.docx
- 剧本杀行业2025人才培训体系构建中的市场需求与供给分析.docx
- 剧本杀行业2025年人才培训行业人才培养模式创新与探索.docx
- 剧本杀行业2025年内容创作人才需求报告.docx
- 剧本杀行业2025年区域市场区域剧本市场消费者满意度与市场竞争力研究报告.docx
- 剧本杀市场2025年区域竞争态势下的区域合作策略分析报告.docx
- 剧本杀行业2025人才培训与行业人才培养模式创新.docx
- 剧本杀行业剧本创作人才心理素质培养报告.docx
最近下载
- 哪些因素会导致患上痛风的风险增加?.pptx VIP
- FlexSim:FlexSim二次开发与编程接口介绍.Tex.header.docx VIP
- 2024年新人教版9年级上册化学全册课件(新版教材).pptx
- 中国人身保险从业资格A5《寿险公司经营与管理》真题卷五.docx VIP
- 2025贵州毕节七星关区实验学校教师“跨校竞聘”60人笔试备考试题及答案解析.docx VIP
- 周围性面瘫患者的面神经功能训练专家共识.docx VIP
- 2025档案管理考试题及答案.doc VIP
- 2025年日历表格(打印版).xlsx VIP
- 如何做好电销人员的新人培训 .pdf VIP
- FlexSim:FlexSim模型验证与确认技术.Tex.header.docx VIP
文档评论(0)