数据的输入和输出
知识点一
计算机的用途:数据的输入和输出。
分类:
字符:字符输入函数getchar()、字符输出函数putchar()。
格式:格式输入函数scanf()、格式输出函数printf()。
知识点二
printf函数一般形式:printf(格式控制,输出表)。
格式说明:%[-][m][.n][l]格式字符。
1)%[m]-----以m宽度、右对齐方式输出字符串,不足以空格占位
2)%[-][m]---[以m宽度、左对齐方式输出字符串,不足以空格占位。
%d----用于输出int long类型数据
%u----用于输出unsigned int、unsigned long 类型数据
知识点三
1,%d格式字符
2,%o、%x和%u格式字符
1)正确使用以上格式字符。
int num6 = ;
int num4 = ;
int num5 = 0x12;
printf("%d,%o,%x\n", num6, num4, num5);//12,12,12
printf("%d,%#o,%#x", num6, num4, num5);//12,012,0x12
2) printf函数不管数据类型,它只按照定义的格式字符去解析内存中的二进制数据,所以同样的二进制数据可能会有不一样的结果!
int num2 = ;
int num3 = -;
printf("%d,%o,%x,%u\n", num2, num2, num2, num2);//10,12,a,10
printf("%d,%o,%x,%u\n", num3, num3, num3, num3);//-10,377777777666,ffffffff6,4294967286
3,%hd%hu和%lld、%llu格式字符
1)表示范围:%lld>%d>%hd。
printf("singned short极值:%hd,%hd\n", SHRT_MAX, SHRT_MIN);
printf("unsigned short极值:%hu,%hu\n", USHRT_MAX, ); printf("singned int极值:%d,%d\n", INT_MAX, INT_MIN);
printf("unsigned int极值:%u,%u\n", UINT_MAX, ); printf("singned long极值:%d,%d\n", LONG_MAX, LONG_MIN);
printf("unsigned long极值:%u,%u\n", ULONG_MAX, ); printf("long long 极值:%lld,%lld\n", LLONG_MAX, LLONG_MIN);
printf("unsigned long long极值:%llu,%llu\n", ULLONG_MAX, );
2)数据溢出,相应的数据类型数据用合适的格式字符。
printf("USHRT_MAX + 1=%hd\n", USHRT_MAX + );
printf("USHRT_MAX + 1=%d\n", USHRT_MAX + );
/*
数据溢出
1111 1111 1111 1111
+ 1
10000 0000 0000 0000 产生进位,数据溢出 */
4,%c格式字符
char x ='a';
printf("%d,%c\n", x, x);//97,a printf("%c%c%c%c\n", 'h', 'e', 'l', 'l');
printf("%c%c%c%c\n", , , , );
5,%s格式字符
printf("%s\n", "hello");
printf("%3s\n", "hello");
printf("%8s\n", "hello");//以m宽度、右对齐方式输出字符串,不足以空格占位。
printf("%-8s_world\n", "hello");//以m宽度、左对齐方式输出字符串,不足以空格占位。
printf("%.2s", "hello");//产生截断
%.[n]应用字符串,产生截断。
6,%f、%e、%g格式字符
1)整数部分全部输出,小数部分输出6位
2)%g根据数值的大小,自动选择用f或e格式输出
3)%[.n]小数后保留几位小数
知识点三