详解scanf函数.docVIP

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 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

文档评论(0)

f8r9t5c + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8000054077000003

1亿VIP精品文档

相关文档