c语言之scanf输入语句

c语言之scanf输入语句

ID:34722507

大小:74.18 KB

页数:8页

时间:2019-03-10

c语言之scanf输入语句_第1页
c语言之scanf输入语句_第2页
c语言之scanf输入语句_第3页
c语言之scanf输入语句_第4页
c语言之scanf输入语句_第5页
资源描述:

《c语言之scanf输入语句》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、现在我们已经学了printf输出函数了,可以在程序中打印变量的值了。但先前的程序都只是打印我们事先在程序中写好的东西,而下面我们要认识的scanf函数则可以帮助我们在程序运行过程中用键盘输入变量的值并把他们打印出来。我们依然是先解释一下scanf函数。scan作为一个英文单词它的字面意思是扫描,在这里我们可以理解成这个函数会扫描你用键盘输入的东西;而f的意思我们都知道是函数的意思。作为一个和printf相对应的函数,scanf函数的名字相应的叫做格式化输入函数。与printf一样可以定义变量的格式只不过它的功能是输入值而不输出。首先让我们认识一下sca

2、nf函数的格式scanf("%?",&?);(?是我用来代表未知量的,没啥意义)是不是和printf的格式何其相似乃尔。在熟悉printf的基础上我们再去讲scanf会轻松很多。但我们都可以发现scanf函数的语句里多了一个我们没用过的“&”符号。&是什么呢?&的名字叫地址符号,如果讲地址的话就要说到内存地址,说内存地址又要说到指针。说实话指针我自己也没学所以我们在这里只是先知道这个地址的概念和将来我们要学的很多知识都有关先就可以了,算是做一个预告。那我们应该怎样理解这里的地址符呢?我在这里只是提供一个我个人的一个思路,如果有自己的理解那便是更好的。地

3、址符顾名思义,是一个提供地址的符号。那么这个地址是提供给谁呢?那当然是提供给你用键盘输入的东西。就像你用键盘给正在运行的程序发送了一个指示,你的这个指示的意义对于scanf来说就是给它的语句中的变量进行赋值。而在你的指示传达给scanf函数时对你的指示进行接收的就是地址符,因此它也就指明了你指令的地址。啰里啰唆说了一大推不知道有没有听懂,如果没听懂纯属我语言叙述能力有问题,不明白欢迎提问。在形式上就是我们亲爱的变量前要加一个&。而关于scanf在对输入内容的格式限定上,可以与printf类比。但值得注意的是,在printf语句中是双引号里的%?定义后面

4、相对应的变量的输出的输出格式。而在scanf语句中,双引号后面的变量的值则需要我们自己用键盘输入。因为实践是检验真理的唯一标准,所以我们发现,如果你用键盘输入的内容的格式和前面双引号里定义的格式不符,系统在运行时便会出现错误。不过还是希望每个人都用编译软件自己试一试,因为在学习编程时最好的方式就是别人都告诉你那么做是错的你也要去自己亲手做一遍。下面我们就通过一个例子更深入地研究一下scanf语句的一些细节问题:#includemain(){inta;floatb;charc;printf("请输入a的值:");scanf("%d",&

5、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就会

6、自动接收我们之前输入的回车键,而使我们没有机会输入这个scanf语句的内容了。在这个程序中就体现为scanf("%c",&c);语句中的&c自动接收我们在输入变量b的值后所按的那个回车。那我们应该怎样解决这个问题呢。办法就是在scanf("%c",&c);语句中的双引号中%c前面加上空格或者tab键。注意要加到双引号里面,如果加到双引号前面了是没有作用的。而在其他格式的输入中的相应位置加上空格都是没有影响的,所以我们最好能养成无论什么变量类型,都在之前加空格的好习惯。效果如下#includemain(){inta;floatb;cha

7、rc;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还有最后一个问题,我们通过下面一个例子来讲一下。#includemain(){inta,b;printf("请输入两个数");scanf("%d,%d",&a,&b);printf("a=

8、%d,b=%d",a,b);}在这里的scanf语句中我们在两个%d中间加了一个逗号sca

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。