c语言scanf ld,C语言格式输入函数scanf.docx

253b171540df25e1b84436cbe50dfc72.gifC语言格式输入函数scanf.docx

C语言格式输入函数scanf详解标题scanf函数称为格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。一、scanf函数的一般形式scanf函数是一个标准库函数,它的函数原型在头文件“stdio.h”中,与printf函数相同,语言也允许在使用scanf函数之前不必包含stdio.h文件。scanf函数的一般形式为 scanf“格式控制字符串”,地址表列;其中,格式控制字符串的作用与printf函数相同,但不能显示非格式字符串,也就是不能显示提示字符串。地址表列中给出各变量的地址。地址是由地址运算符“ printf a,b,cn; scanfddd, printfad,bd,cd,a,b,c;在本例中,由于scanf函数本身不能显示提示串,故先用printf语句在屏幕上输出提示,请用户输入a、b、c的值。执行scanf语句,则退出TC屏幕进入用户屏幕等待用户输入。用户输入7 8 9后按下回车键,此时,系统又将返回TC屏幕。在scanf语句的格式串中由于没有非格式字符在“ddd”之间作输入时的间隔,因此在输入时要用一个以上的空格或回车键作为每两个输入数之间的间隔。如7 8 9或789二、格式字符串格式字符串的一般形式为*输入数据宽度长度类型其中有方括号的项为任选项。各项的意义如下1. 类型表示输入数据的类型,其格式符和意义如下表所示。格式字符意义d输入十进制整数o输入八进制整数x输入十六进制整数u输入无符号十进制整数f或e输入实型数用小数形式或指数形式c输入单个字符s输入字符串2. “*”符用以表示该输入项,读入后不赋予相应的变量,即跳过该输入值。如scanfd *d d,。当输入为1 2 3时,把1赋予a,2被跳过,3赋予b。3. 宽度用十进制整数指定输入的宽度即字符数。例如 scanf5d,输入12345678只把12345赋予变量a,其余部分被截去。又如 scanf4d4d,输入12345678将把1234赋予a,而把5678赋予b。4. 长度长度格式符为l和h,l表示输入长整型数据如ld 和双精度浮点数如lf。h表示输入短整型数据。使用scanf函数还必须注意以下几点1. scanf函数中没有精度控制,如scanf5.2f,是非法的。不能企图用此语句输入小数为2位的实数。2. scanf中要求给出变量地址,如给出变量名则会出错。如 scanfd,a;是非法的,应改为scnafd,才是合法的。3. 在输入多个数值数据时,若格式控制串中没有非格式字符作输入数据之间的间隔则可用空格,TAB或回车作间隔。C编译在碰到空格,TAB,回车或非法数据如对“d”输入“12A”时,A即为非法数据时即认为该数据结束。4. 在输入字符数据时,若格式控制串中无非格式字符,则认为所有输入的字符均为有效字符。例如 scanfccc,输入d e f则把d赋予a, 赋予b,e赋予c。只有当输入为def时,才能把d赋于a,e赋予b,f赋予c。如果在格式控制中加入空格作为间隔,如scanf c c c,则输入时各数据之间可加空格。【例4.8】main char a,b; printf character a,bn; scanfcc, printfccn,a,b;由于scanf函数cc中没有空格,输入M N,结果输出只有M。而输入改为MN时则可输出MN两字符。【例4.9】main char a,b; printf character a,bn; scanfc c, printfnccn,a,b;本例表示scanf格式控制串c c之间有空格时,输入的数据之间可以有空格间隔。5. 如果格式控制串中有非格式字符则输入时也要输入该非格式字符。例如 scanfd,d,d,其中用非格式符“ , ”作间隔符,故输入时应为 5,6,7又如 scanfad,bd,cd,则输入应为 a5,b6,c76. 如输入的数据与输出的类型不一致时,虽然编译能够通过,但结果将不正确。【例4.10】main int a; printf a numbern; scanfd, printfld,a; 由于输入数据类型为整型,而输出语句的格式串中说明为长整型,因此输出结果和输入数据不符。如改动程序如下【例4.11】main long a; printf a long integern; scanfld, printfld,a;运行结果为 a long integer 1234567890 1234567890当输入数据改为长整型后,输入输出数据相等。【例4.12】main char a,b,c; printf character a,b,cn; scanfc c c, printfd,d,dnc,c,cn,a,b,c,a-32,b-32,c-32; 输入三个小写字母,输出其ASCII码和对应的大写字母。【例4.13】mainint a;long b;float f;double d;char c;printfnintdnlongdnfloatdndoublednchardn,sizeofa,sizeofb,sizeoff,sizeofd,sizeofc; 输出各种数据类型的字节长度。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值