您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 企业文化 > 嵌入式Linux下C程序设计--02输入输出语句
嵌入式Linux下C程序设计主讲:成宝宗字符数据的输入输出putchar函数(字符输出函数)putchar函数的作用是向终端输出一个字符:例如putchar(c);它输出字符变量c的值。c可以是字符型变量或整型变量。例:输出单个字符。#includestdio.hintmain(void){chara,b,c;a='b';b='o';c='y';putchar(a);putchar(b);putchar(‘\n’);putchar(c);putchar(0x63);puthar(0143);puthar(10);Putchar(500);}getchar函数(字符输入函数)此函数的作用是从终端(或系统隐含指定的输入设备)输入一个字符。getchar函数没有参数,其一般形式为getchar()函数的值就是从输入设备得到的字符。例如:例:输入单个字符#includestdio.hmain(){charc;c=getchar();putchar(c);}printf函数(格式输出函数)printf函数,它的作用是向终端(或系统隐含指定的输出设备)输出若干个任意类型的数据(putchar只能输出字符,而且只能是一个字符,而printf可以输出多个数据,且为任意类型)。1.printf函数的一般格式为printf(格式控制,输出表列)如:printf(%d,%c\n,i,c)括弧内包括两部分:格式控制与输出表列格式输入与输出(1)“格式控制”是用双引号括起来的字符串,也称“转换控制字符串”,它包括两种信息:①格式说明,由“%”和格式字符组成,如%d,%f等。它的作用是将输出的数据转换为指定的格式输出。格式说明总是由“%”字符开始的。②普通字符,即需要原样输出的字符。例如上面printf函数中双引号内的逗号、空格和换行符。(2)“输出表列”是需要输出的一些数据,可以是表达式。2.格式字符对不同类型的数据用不同的格式字符。常用的有以下几种格式字符:(1)d格式符。用来输出十进制整数。有以下几种用法:①%d,按整型数据的实际长度输出。②%md,m为指定的输出字段的宽度。如果数据的位数小于m,则左端补以空格,若大于m,则按实际位数输出。如printf(%4d,%4d,a,b);若a=123,b=12345,则输出结果为123,12345(2)o格式符,以八进制数形式输出整数。由于是将内存单元中的各位的值(0或1)按八进制形式输出,因此输出的数值不带符号,即将符号位也一起作为八进制数的一部分输出。例如:inta=78;printf(%d,%o,a,a);(3)x格式符,以十六进制数形式输出整数。同样不会出现负的十六进制数。例如:inta=78;printf(%x,%o,%d,a,a,a);(5)c格式符,用来输出一个字符。如:charc='a';printf(%c,c);输出字符‘a’,请注意:“%c”中的c是格式符,逗号右边的c是变量名,不要搞混。在输出前,系统会将该整数作为ascii码转换成相应的字符;反之,一个字符数据也可以用整数形式输出。例:字符数据的输出。intmain(void){charc='a';inti=97;printf(%c,%d\n,c,c);printf(%c,%d\n,i,i);}运行结果为:a,97a,97也可以指定输出字数宽度,如果有printf(%3c,c)则输出:“a”,即c变量输出占3列,前2列补空格。scanf函数(格式输入函数)在第1章中已初步接触到了scanf函数,在本节中再作详细介绍。1.一般形式scanf(格式控制,地址表列)“格式控制”的含义同printf函数;“地址表列”是由若干个地址组成的表列,可以是变量的地址,或字符串的首地址。例4.9用scanf函数输入数据。intmain(void){inta,b,c;scanf(“%d%d%d”,&a,&b,&c);printf(%d,%d,%d\n,a,b,c);}使用scanf函数时应注意的问题(1)scanf函数中的“格式控制”后面应当是变量地址,而不应是变量名。例如,如果a、b为整型变量,则scanf(%d,%d,a,b);是不对的,应将“a,b”改为“&a,&b”。这是c语言与其他高级语言不同之处。许多初学者常在此出错。(2)如果在“格式控制”字符串中除了格式说明以外还有其他字符,则在输入数据时应输入与这些字符相同的字符。例如scanf(%d,%d,&a,&b);输入时应用如下形式:3,4注意3后面是逗号,它与scanf函数中的“格式控制”中的逗号对应。如果输入时不用逗号而用空格或其他字符是不对的:34(不对)3:4(不对)如果是scanf(%d%d,&a,&b);输入时两个数据间应空2个或更多的空格字符。如:1034或1034如果是scanf(%d∶%d∶%d,&h,&m,&s);输入应该用以下形式:12∶23∶36如果是scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);输入应为以下形式:a=12,b=24,c=36这种形式为了使用户输入数据时添加必要的信息以帮助理解,不易发生输入数据的错误。(3)在用“%c”格式输入字符时,空格字符和“转义字符”都作为有效字符输入:scanf(%c%c%c,&c1,&c2,&c3);如输入abc字符‘a’送给c1,字符‘’送给c2,字符‘b’送给c3,因为%c只要求读入一个字符,后面不需要用空格作为两个字符的间隔,因此‘’作为下一个字符送给c2。(4)在输入数据时,遇以下情况时该数据认为结束。①遇空格,或按“回车”或“跳格”(tab)键。②按指定的宽度结束,如“%3d”,只取3列。③遇非法输入。如scanf(%d%c%d,&a,&b,&c);若输入234a12↓↓↓abc
本文标题:嵌入式Linux下C程序设计--02输入输出语句
链接地址:https://www.777doc.com/doc-3972927 .html