c语言之scanf输入语句.docVIP

  1. 1、本文档共8页,可阅读全部内容。
  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文档。上传文档
查看更多
现在我们已经学了printf输出函数了,可以在程序中打印变量的值了。但先前的程序都只是打印我们事先在程序中写好的东西,而下面我们要认识的scanf函数则可以帮助我们在程序运行过程中用键盘输入变量的值并把他们打印出来。 我们依然是先解释一下scanf函数。 scan作为一个英文单词它的字面意思是扫描,在这里我们可以理解成这个函数会扫描你用键盘输入的东西;而f的意思我们都知道是函数的意思。 作为一个和printf相对应的函数,scanf函数的名字相应的叫做格式化输入函数。与printf一样可以定义变量的格式只不过它的功能是输入值而不输出。 首先让我们认识一下scanf函数的格式 scanf(%?,?); (?是我用来代表未知量的,没啥意义) 是不是和printf的格式何其相似乃尔。在熟悉printf的基础上我们再去讲scanf会轻松很多。 但我们都可以发现scanf函数的语句里多了一个我们没用过的“”符号。 是什么呢?的名字叫地址符号,如果讲地址的话就要说到内存地址,说内存地址又要说到指针。说实话指针我自己也没学所以我们在这里只是先知道这个地址的概念和将来我们要学的很多知识都有关先就可以了,算是做一个预告。 那我们应该怎样理解这里的地址符呢?我在这里只是提供一个我个人的一个思路,如果有自己的理解那便是更好的。 地址符顾名思义,是一个提供地址的符号。那么这个地址是提供给谁呢?那当然是提供给你用键盘输入的东西。 就像你用键盘给正在运行的程序发送了一个指示,你的这个指示的意义对于scanf来说就是给它的语句中的变量进行赋值。而在你的指示传达给scanf函数时对你的指示进行接收的就是地址符,因此它也就指明了你指令的地址。 啰里啰唆说了一大推不知道有没有听懂,如果没听懂纯属我语言叙述能力有问题,不明白欢迎提问。 在形式上就是我们亲爱的变量前要加一个。 而关于scanf在对输入内容的格式限定上,可以与printf类比。 但值得注意的是,在printf语句中是双引号里的%?定义后面相对应的变量的输出的输出格式。 而在scanf语句中,双引号后面的变量的值则需要我们自己用键盘输入。因为实践是检验真理的唯一标准,所以我们发现,如果你用键盘输入的内容的格式和前面双引号里定义的格式不符,系统在运行时便会出现错误。 不过还是希望每个人都用编译软件自己试一试,因为在学习编程时最好的方式就是别人都告诉你那么做是错的你也要去自己亲手做一遍。 下面我们就通过一个例子更深入地研究一下scanf语句的一些细节问题: #include stdio.h main() { int a; float b; char c; printf(请输入a的值:); scanf(%d,a); printf(请输入b的值:); scanf(%f,b); printf(请输入c的值:); scanf(%c,c); printf(a=%d,b=%f,c=%c,a,b,c); } 这个程序看起来很正确,但在实际运行中就会发现一个问题 那就是你在输入a和b的值后系统就自动在屏幕上输出a和b的值并结束运行了 这是因为什么呢? 因为我们每次在输入一个变量的值后,必须按回车键告诉程序我已经完成了这个变量的输入并输入下一个变量的值 但我们要注意的是,回车键或空格键、制表键本身也都算是一个字符。 而当我们要输入的变量的格式是char字符格式时,c就会自动接收我们之前输入的回车键,而使我们没有机会输入这个scanf语句的内容了。 在这个程序中就体现为scanf(%c,c);语句中的c自动接收我们在输入变量b的值后所按的那个回车。 那我们应该怎样解决这个问题呢。 办法就是在scanf(%c,c);语句中的双引号中%c前面加上空格或者tab键。注意要加到双引号里面,如果加到双引号前面了是没有作用的。 而在其他格式的输入中的相应位置加上空格都是没有影响的,所以我们最好能养成无论什么变量类型,都在之前加空格的好习惯。 效果如下 #include stdio.h main() { int a; float b; char c; printf(请输入a的值:); scanf( %d,a); printf(请输入b的值:); scanf( %f,b); printf(请输入c的值:); scanf( %c,c); printf(a=%d,b=%f,c=%c,a,b,c); } (为了视觉效果夸大了一下空格的长度。。。) 这样系统就能正常运行了。 关于scanf还有最后一个问题,我们通过下面一个例子来讲一下。 #includestdio.h main() { int a,b; printf(请输入两个数\n); scanf(%d,%d,a,b); printf(a=%d,b=%d\n,a,b); } 在这里的scan

文档评论(0)

185****7617 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档