C语言基础学习1:格式输出

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.
",sizeof(int));
13     printf("a = %d, %o, %x, %u
",a,a,a,a);
14     printf("b = %d, %o, %x, %u
",b,b,b,b);
15     printf("c = %d, %o, %x, %u
",c,c,c,c);
16 
17     return;
18 }
View Code

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
",d);//not include ''
 9     printf("%s
%10.4s
%-10.4s
",s,s,s);
10 
11     return;
12 }
View Code

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的整型输入整数。

原文地址:https://www.cnblogs.com/iambitiousman/p/3854764.html