- 基本数据类型
-
类型名称 占字节数 其他叫法 表示的数据范围 char 1 signed char -128 ~ 127 unsigned char 1 none 0 ~ 255 int 4 signed int -2,147,483,648 ~ 2,147,483,647 unsigned int 4 unsigned 0 ~ 4,294,967,295 short 2 short int -32,768 ~ 32,767 unsigned short 2 unsigned short int 0 ~ 65,535 long 4 long int -2,147,483,648 ~ 2,147,483,647 unsigned long 4 unsigned long 0 ~ 4,294,967,295 float 4 none 3.4E +/- 38 (7 digits) double 8 none 1.7E +/- 308 (15 digits) long double 10 none 1.2E +/- 4932 (19 digits) - 基本输入输出
- 字符输入输出
- getchar(), putchar();
1 #include <stdio.h> 2 int main(void){ 3 4 char c; 5 c = getchars(); 6 putchar(c); 7 8 return 0; 9 }
- 格式化输入输出
- printf(“格式控制字符串”,输出表项);
-
格式字符 d , i 以十进制形式输出有符号整数(正数不输出符号) O 以八进制形式输出无符号整数(不输出前缀0) x 以十六进制形式输出无符号整数(不输出前缀0x) U 以十进制形式输出无符号整数 f 以小数形式输出单、双精度类型实数 e 以指数形式输出单、双精度实数 g 以%f或%e中较短输出宽度的一种格式输出单、双精度实数 C 输出单个字符 S 输出字符串
1 #include<stdio.h> 2 int main() 3 { 4 int a=12; 5 float b=3.1415; 6 char c='A'; 7 printf("%d ",a); 8 printf("o%o ",a); 9 printf("0x%x ",a); 10 printf("%3.2f ",b); 11 printf("%c ",c); 12 getchar(); 13 return 0; 14 }
结果:
- scanf(“格式控制字符串”,输入项地址列表);
-
(1) 格式说明符中,可以指定数据的宽度,但不能指定数据的精度。例:
float a; scanf(“%10f”,&a); //正确 scanf(“%10.2f”,&a); //错误
(2) 输入long类型数据时必须使用%ld,输入double数据必须使用%lf或%le。
(3) 附加格式说明符”*”使对应的输入数据不赋给相应的变量。 -
转换说明符 %c 把输入解释成一个字符 %d 把输入解释成一个有符号十进制整数 %e,%f,%g,%a 把输入解释成一个浮点数(%a是C99的标准) %E,%F,%G,%A 把输入解释成一个浮点数(%A是C99的标准) %i 把输入解释成一个有符号十进制整数 %o 把输入解释成一个有符号的八进制整数 %p 把输入解释成一个指针(一个地址) %s 把输入解释成一个字符串:输入的内容以第一个非空白字符作为开始,并且包含直到下一个空白字符的全部字符 %u 把输入解释成一个无符号十进制整数 %x,%X 把输入解释称一个有符号十六进制整数 - *在scanf()中提供截然不同的服务,当把它放在%和说明符字母之间时,它使函数跳过相应的输入项目。参考程序事例:
-
#include <stdio.h> int main(void){ int num; printf("please enter three number:"); scanf("%*d %*d %d, &num"); printf("The number is %d ", num); rerturn 0; }
结果:
1 Please enter three number: 2 2014 2015 2016 3 The last number is 2016
关于scanf()的返回值
scanf() 函数返回成功读入的项目的个数。如果它没有读取任何项目(比如它期望接收一个数字而您却输入的一个非数字字符时就会发生这种情况),scanf()返回0。
当它检测到“文件末尾”(end of file)时,它返回EOF(EOF在是文件stdio.h中的定义好的一个特殊值,一般,#define指令将EOF的值定义为-1)。当您学过循环之后,或在参加ACM这样的比赛及使用在线评测系统的时候会经常用到这种写法。