C语言scanf函数应用问题.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
  语言的输入是由系统提供的库函数完成的。   函数是语言中最常用且功能最强的输入函数,但该函数如使用不慎,就会出现错误或得不到预想的结果。   以下结果都是基于++60运行环境。   一、格式说明符和输入项的三对应类型、个数、顺序函数格式中的格式说明格式字符应与输入项数据类型一致,个数相等、顺序对应除格式说明中出现*附加格式说明字符外。   示例一,;,,;,,,;输入345时,输出3,4,没有错误提示信息,但是第三个数没有接收的变量,也就没有输出。   再如,;,,;,,,;输入34时,输出3,-858993460,得到3,但是一个随机数,都是因为格式说明格式字符与输入项个数不一致造成的。   再如{;[10];;;};,,,,;输入10001,,23,68,运行程序时,无出错信息,但不能正确接收输入数据。   应该写成,,,,,,,-;保证格式说明与输入项个数相等、一一对应,才能使正确接收输入数据。   示例二,;,,;,,,;输入34时,输出3,4,输入整型数据,是字符型数据接收,但是结果正确,因为字符型数据在内存中的存放形式是整型数据。   再如,;,,;,,,;输入34时,输出0,918028288,即和的结果都是随机数,这就是输入格式和接收的数据类型不一样造成的。   又如,;,,;,,,;输入1234时,输出1067030938,1079613850,即和的结果都是随机数,这也是输入格式和接收的数据类型不一样造成的。   二、非格式说明符的输入非格式说明符要求用户原样照写输入,既不能更改,又不能漏写。   示例一,;=,=,,;,,,;输入12即1、2间用空格隔开,输出-858993460,-858993460,无错误提示,但结果与输入数据不一致,输出、的值是随机数。   这就是因为函数中设定的格式=,=其中=,=均为普通字符与输入数据的格式1、2间用空格间隔不一致造成的,正确的输入形式应为=1,=2,也绝不能漏掉。   所以,为了保证正确输入数据,输入数据前首先看好程序中函数设定的格式,再按照设定的格式正确输入数据。   示例二,,,;输入时应用以下形式3,4↙注意3后面应是逗号,它与函数中的格式控制中的逗号对应。   如果输入时不用逗号而用空格或其他字符是不对的。   3□4↙不对34↙不对如果是□□,,;则输入时两个数据间应空两个或更多个空格字符。   如3□□4↙或3□□□□4↙三、附加格式说明符的说明示例一,;22,,;,,,;输入1234,输出12,34输入123,输出12,3输入123456,输出12,34因为格式中格式字符表示输入整型数据,2附加格式说明字符表示输入数据所占宽度为2,因此,无论用户输入什么,系统都将自动截取两位赋给,再截取两位赋给。   也就是说可以用附加格式说明符指定输入数据所占列数,系统将自动按它截取所需数据。   再如3,;如果从键盘上连续输入3个字符,由于只能容纳一个字符,系统就把第一个字符‘’赋给。   示例二;51,;输入1234,无错误提示,但并不能接收输入数据,输出的值为随机数,再尝试输入别的数据,结果都为随机数。   用户本意想用这样的格式输入宽度为5位,小数部分为1位的小数,但得不到预想结果。   因为,函数中只有域宽此处为5附加格式说明字符指定输入数据所占列数,而没有在小数位数附加格式说明字符只有函数有,应该去掉1,即5,;或,;均可,此时输入1234即可接收。   所以,应根据函数中规定的格式字符及其附加格式说明字符使用,不能滥用,输入数据时不能规定精度。   示例三;,;输入1234,输出的值为随机数,没有接收输入的数据,再输入别的数据,结果都为随机数。   这是因为用户定义为双精度型数据,而用格式输入数据时,不能接收,应该使用或,即,;此时输入1234即可接收。   因此长整型数据和双精度型数据必须使用附加格式说明字符,短整型数据必须使用附加格式说明字符。   示例四,;2,*3,2,,;输入12,345,67,此时,12赋给,67赋给。   注意原则上,格式字符应与输入项,个数相等,一一对应,此处则出现了个数不等的情况格式字符项数为3,而输入项数为2。   因为函数中有附加格式说明字符*,加*项表示输入的数据不赋给相应变量,因此输入的345被跳过,接收下一个数据67,致使格式字符与输入项个数可以不等的情况出现。   在利用现成的一批数据时,有时不需要其中某些数据,可用此法跳过它们。   例如,,;,,;输入□↙,输出□‘,’给了字符变量‘,□’作为合法字符给了字符变量。   这时我们改用*,,;输入□↙,输出,‘’给了字符变量‘,□’被*跳过‘,’就给了字符变量。   可见,使用函数

文档评论(0)

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

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

1亿VIP精品文档

相关文档