1、字符数据的输入输出
putchar函数:向终端输出一个字符。
使用形式:putchar(c);
getchar函数:从终端输入一个字符。
使用形式:c = getchar();
2、格式输入输出
2.1 printf函数:向终端输出若干个任意类型的数据。
一般格式:printf(格式控制,输出表列)。
2.1.1 d格式符
%d 按十进制整型数据的实际长度输出。
%md m为指定的输出字段的宽度,如果数据的位数小于m,则左端补以空格,若大于m,则按实际位数输出。
%ld 输出长整型数据(整数超出sizeof(int)时要使用长整型数据long或long int,int可省略)
2.1.2 o和x格式符
%o 以八进制整型数据输出
%x 以十六进制形式输出整数。
如果是长整型,使用%lo或%lx
2.1.3 u格式符
%u 用来输出unsigned型数据
1 #include <stdio.h> 2 #include <math.h> 3 4 void main() 5 { 6 int BytePerInt = sizeof(int); 7 int BitsPerInt = 8*BytePerInt; 8 unsigned int a = pow(2,BitsPerInt); 9 unsigned int b = a-1; 10 int c = -2; 11 12 printf("int is %d bytes.\n",sizeof(int)); 13 printf("a = %d, %o, %x, %u\n",a,a,a,a); 14 printf("b = %d, %o, %x, %u\n",b,b,b,b); 15 printf("c = %d, %o, %x, %u\n",c,c,c,c); 16 17 return; 18 }
int is 4 bytes.
a = 0, 0, 0, 0
b = -1, 37777777777, ffffffff, 4294967295
c = -2, 37777777776, fffffffe, 4294967294
2.1.4 c格式符
%c 用来输出一个字符,0-255范围内整数也可以用%c输出。
2.1.5 s格式符
%s 输出一个字符串
%ms 输出字符串占m列,如字符串长度大于m,则突破m限制,字符串全部输出,若小于m,左补空格。
%-ms 如果串长小于m,在m列范围内,字符串向左靠,右补空格。
%m.ns 输出占m列,但只取字符串中左端n个字符,且这n个字符输出在m列的右侧,左补空格。
%-m.ns n个字符输出在m列范围的左侧,右补空格,如果n>m,则m自动取n值,保证n个字符正常输出。
1 #include <stdio.h> 2 #include <string.h> 3 4 void main() 5 { 6 char s[] = "I am happy."; 7 int d = strlen(s); 8 printf("The real length of s is:%d\n",d);//not include ‘\0‘ 9 printf("%s\n%10.4s\n%-10.4s\n",s,s,s); 10 11 return; 12 }
The real length of s is:11
I am happy.
I am
I am
2.1.6 f格式符
%f 用来输出实数(包括单、双精度),以小数形式输出,不指定字段宽度。
%m.nf 指定输出的数据占用m列,其中有n位小数。如果数值长度小于m,则左端补空格。
-m.nf 与%m.nf基本相同,只是输出的数值向左靠,右端补空格。
2.1.7 e格式符
%e 以指数形式输出实数
%m.ne和-%m.ne与之前的意义相同,n指的是小数部分的小数位数。
2.1.8 g格式符
%g 用来输出实数,它根据数值的大小,自动选择f格式或e格式(选择输出时所占的宽度较小的一种),且不输出无意义的零。
2.2 scanf函数:向终端输入若干个任意类型的数据。
一般格式:scanf(格式控制,地址列表)
说明:
格式符与printf类似。
需要注意的地方:
可以指定输入数据所占的列数,系统会自动按它截取所获数据,但是输入数据不能规定精度,如%7.2f.
遇到*字符,表示跳过,如*3d,表示跳过宽度为3的整型输入整数。