文档详情

C语言字符输出格式化.doc

发布:2017-06-07约2.77千字共2页下载文档
文本预览下载声明
符号属性 长度属性 基本型 所占 位数 取值范围 输入符举例 输出符举例 -- -- char 8 -2^7 ~ 2^7-1 %c %c、%d、%u signed -- char 8 -2^7 ~ 2^7-1 %c %c、%d、%u unsigned -- char 8 0 ~ 2^8-1 %c %c、%d、%u [signed] short [int] 16 -2^15 ~ 2^15-1 %hd %hd unsigned short [int] 16 0 ~ 2^16-1 %hu %hu 、%ho、%hx [signed] -- int 32 -2^31 ~ 2^31-1 %d %d unsigned -- [int] 32 0 ~ 2^32-1 %u %u 、%o、%x [signed] long [int] 32 -2^31 ~ 2^31-1 %ld %ld unsigned long [int] 32 0 ~ 2^32-1 %lu %lu 、%lo、%lx [signed] long long [int] 64 -2^63 ~ 2^63-1 %I64d %I64d unsigned long long [int] 64 0 ~ 2^64-1 %I64u %I64u、%I64o、%I64x -- -- float 32 +/- 3.40282e+038 %f、%e、%g %f、%e、%g -- -- double 64 +/- 1.79769e+308 %lf 、%le、%lg %f、%e、%g -- long double 96 +/- 1.79769e+308 %Lf、%Le、%Lg %Lf 、%Le、%Lg 几点说明: 1. 注意! 表中的每一行,代表一种基本类型。“[]”代表可省略。 例如:char、signed char、unsigned char是三种互不相同的类型; int、short、long也是三种互不相同的类型。 可以使用C++的函数重载特性进行验证,如: void Func(char ch) {} void Func(signed char ch) {} void Func(unsigned char ch) {} 是三个不同的函数。 2. char/signed char/unsigned char型数据长度为1字节; char为有符号型,但与signed char是不同的类型。 注意! 并不是所有编译器都这样处理,char型数据长度不一定为1字节,char也不一定为有符号型。 3. 将char/signed char转换为int时,会对最高符号位1进行扩展,从而造成运算问题。 所以,如果要处理的数据中存在字节值大于127的情况,使用unsigned char较为妥当。 程序中若涉及位运算,也应该使用unsigned型变量。 4. char/signed char/unsigned char输出时,使用格式符%c(按字符方式); 或使用%d、%u、%x/%X、%o,按整数方式输出; 输入时,应使用%c,若使用整数方式,Dev-C++会给出警告,不建议这样使用。 5. int的长度,是16位还是32位,与编译器字长有关。 16位编译器(如TC使用的编译器)下,int为16位;32位编译器(如VC使用的编译器cl.exe)下,int为32位。 6. 整型数据可以使用%d(有符号10进制)、%o(无符号8进制)或%x/%X(无符号16进制)方式输入输出。 而格式符%u,表示unsigned,即无符号10进制方式。 7. 整型前缀h表示short,l表示long。 输入输出short/unsigned short时,不建议直接使用int的格式符%d/%u等,要加前缀h。 这个习惯性错误,来源于TC。TC下,int的长度和默认符号属性,都与short一致, 于是就把这两种类型当成是相同的,都用int方式进行输入输出。 8. 关于long long类型的输入输出: %lld和%llu是linux下gcc/g++用于long long int类型(64 bits)输入输出的格式符。 而%I64d和%I64u则是Microsoft VC++库里用于输入输出__int64类型的格式说明。 Dev-C++使用的编译器是Mingw32,Mingw32是x86-win32 gcc子项目之一,编译器核心还是linu
显示全部
相似文档