printf的输出格式控制符、格式修饰符、转义字符 |
您所在的位置:网站首页 › c语言格式控制符要换行吗 › printf的输出格式控制符、格式修饰符、转义字符 |
格式控制符:
%d:用于输出十进制有符号整数。
%u:用于输出十进制无符号整数。
%f:用于输出十进制浮点数字。
%e 或 %E:用于输出指数形式的浮点数。
%g 或 %G:用于输出浮点数,根据数值大小自动选择使用 %f 或 %e。
%o :用于输出无符号八进制。
%x 或 %X:用于输出无符号十六进制。
%c:用于输出单个字符。
%s:用于输出字符串。
%p:用于输出指针地址。
%lu:用于输出无符号长整型。
%lld 或 %I64d:用于输出有符号长长整型。
%llu 或 %I64u:用于输出无符号长长整型。
%Lf:用于输出长双精度浮点数。
%% 格式控制符:用来输出百分号 %,在输出时需要使用两个百分号连在一起。 格式修饰符: -:左对齐。 +:输出符号(正数前面加上“+”)。 #:八进制前缀(0)、十六进制前缀(0x 或 0X)或浮点数小数点(.)。 0:用 0 在左侧填充数据输出的空白,而不是默认的空格字符。 m.n:m 是指定的最小宽度,n 是指定的精度。 *:用来接收动态传入的宽度和精度。例如,%*.*f 表示输出浮点数,宽度和精度由后面带两个 int 类型的参数动态传入。 转义字符: \a:警报(响铃)。 \b:退格(回退)一格。 \f:换页。 \n:换行。 \r:回车。 \t:水平制表符。 \v:垂直制表符。 \\:反斜杠。 \':单引号。 \":双引号。 \?:问号。 \0:字符串结束标志。 C语言输出函数printf格式控制符的作用(基本用法)%c 输出一个单一的字符 %hd、%d、%ld 以十进制、有符号的形式输出 short、int、long(短整型、整型、长整型) 类型的整数 %hu、%u、%lu 以十进制、无符号的形式输出 short、int、long 类型的整数 %ho、%o、%lo 以八进制、不带前缀、无符号的形式输出 short、int、long 类型的整数 %#ho、%#o、%#lo 以八进制、带前缀、无符号的形式输出 short、int、long 类型的整数 %hx、%x、%lx、%hX、%X、%lX 以十六进制、不带前缀、无符号的形式输出 short、int、long 类型的整数。如果 x 小写,那么输出的十六进制数字也小写;如果 X 大写,那么输出的十六进制数字也大写。 %#hx、%#x、%#lx、%#hX、%#X、%#lX 以十六进制、带前缀、无符号的形式输出 short、int、long 类型的整数。如果 x 小写,那么输出的十六进制数字和前缀都小写;如果 X 大写,那么输出的十六进制数字和前缀都大写。 %f、%lf 以十进制的形式输出 float、double 类型的小数 %e、%le 、%E、%lE 以指数的形式输出 float、double 类型的小数。如果 e 小写,那么输出结果中的 e 也小写;如果 E 大写,那么输出结果中的 E 也大写。 %g、%lg、%G、%lG 以十进制和指数中较短的形式输出 float、double 类型的小数,并且小数部分的最后不会添加多余的 0。如果 g 小写,那么当以指数形式输出时 e 也小写;如果 G 大写,那么当以指数形式输出时 E 也大写。 %s 输出一个字符串 代码如下: #include int main() { int a = 10; int b = -10; float c = 6.6f; double d = 3.1415926; double e = 10.10; char f = 'a'; // 有符号整数(可以输出负数) printf("a = %d\n", a); // 10 printf("a = %i\n", a); // 10 // 无符号整数(不可以输出负数) printf("a = %u\n", a); // 10 printf("b = %u\n", b); // 429496786 // 无符号八进制整数(不可以输出负数) printf("a = %o\n", a); // 12 printf("b = %o\n", b); // 37777777766 // 无符号十六进制整数(不可以输出负数) printf("a = %x\n", a); // a printf("b = %x\n", b); // fffffff6 // 无符号十六进制整数(不可以输出负数) printf("a = %X\n", a); // A printf("b = %X\n", b); // FFFFFFF6 // 单、双精度浮点数(默认保留6位小数) printf("c = %f\n", c); // 6.600000 printf("d = %lf\n", d); // 3.141593 // 以指数形式输出单、双精度浮点数 printf("e = %e\n", e); // 1.010000e+001 printf("e = %E\n", e); // 1.010000E+001 // 以最短输出宽度,输出单、双精度浮点数 printf("e = %g\n", e); // 10.1 printf("e = %G\n", e); // 10.1 // 输出字符 printf("f = %c\n", f); // a return 0; } C语言输出函数printf格式控制符的作用(进阶用法)printf格式控制符完整格式:%[flag][width][.precision]type (1)type如上所述; (2)flag:标志字符,详情见下表: flag 作用 - 表示左对齐。如果没有,就按照默认的对齐方式,默认一般为右对齐。 + 用于整数或者小数,表示输出符号(正负号)。如果没有,那么只有负数才会输出符号。 空格 用于整数或者小数,输出值为正时冠以空格,为负时冠以负号。 # 1)对于八进制(%o)和十六进制(%x / %X)整数,# 表示在输出时添加前缀;八进制的前缀是 0,十六进制的前缀是 0x / 0X。对于小数(%f / %e / %g)2)# 表示强迫输出小数点。如果没有小数部分,默认是不输出小数点的,加上 # 以后,即使没有小数部分也会带上小数点。 (3)width表示宽度; (4) .precision 表示输出精度,也就是小数的位数。 ①当小数部分的位数大于 precision 时,会按照四舍五入的原则丢掉多余的数字; ②当小数部分的位数小于 precision 时,会在后面补 0。 此外,亦可用与字符串和整数: ①用于字符串时,.precision 表示最大输出宽度,或者说截取字符串。当字符串的长度大于 precision 时,会截掉多余的字符;当字符串的长度小于 precision 时,.precision 就不再起作用。 ②用于整数时,.precision 表示最小输出宽度。与 width 不同的是,整数的宽度不足时会在左边补 0,而不是补空格。 部分用法示例 代码如下: #include int main(void) { int a = 10, b = 20, c = 30; printf("%5d,%5d,%5d\n",a,b,c); printf("%.5d,%.5d,%.5d\n", a, b, c); printf("%-5d,%-5d,%-5d\n\n", a, b, c); int d = 10; printf("%d,%+d\n",d,d); printf("% d\n\n",d); double e = 5.6789; printf("%.2lf\n",e); printf("%.10lf\n", e); printf("%.0lf\n", e); printf("%#.0lf\n\n", e); char f[10] = "abcdefghi"; printf("%.3s,%.7s\n", f, f); return 0; }输出结果如下图: 代码演示: #include int main() { int a = 123; // 整型 unsigned int b = 456;// 无符号整型 double c = 1.23; // 浮点数 double d = 12345.678; // 指数形式浮点数 int e = 0x123; // 十六进制 char f = 'a'; // 字符 char g[] = "hello world"; // 字符串 int* h = &a; // 指针地址 unsigned long i = 1234567890ul;// 无符号长整型 long long j = -123450000000ll;// 有符号长长整型 long double l = 1.23;// 长双精度浮点数 unsigned long long k = 123450000000ull;// 无符号长长整型 int num = 123; double fnum = 3.14159; printf("%d\n", a); // 输出 123 printf("%u\n", b); // 输出 456 printf("%f\n", c); // 输出 1.230000 printf("%e\n", d); // 输出 1.234568e+04 printf("%x\n", e); // 输出 123 printf("%c\n", f); // 输出 a printf("%s\n", g); // 输出 hello world printf("%p\n", h); // 输出 a 的地址 printf("%lu\n", i); // 输出 1234567890 printf("%lld\n", j); // 输出 -123450000000 printf("%Lf\n", l); // 输出 1.230000 printf("%llu\n", k); // 输出 123450000000 printf("%%\n"); // 百分号转义输出 % // 格式修饰符 printf("%-5d\n", num); // 输出 123 (左对齐) printf("%+d\n", num); // 输出 +123(输出符号) printf("%#x\n", num); // 输出 0x7b(十六进制前缀) printf("%05d\n", num); // 输出 00123(用 0 左对齐填充) printf("%.2f\n", fnum); // 输出 3.14 (精度控制) printf("%*.*f\n", 8, 2, fnum); // 输出 3.14 (动态宽度和精度,从后面两个 int 参数中传入) // 转义字符 printf("hello\tworld\n"); // 输出 hello world return 0; }输出结果如下图:
对于修饰符和格式控制符的使用,可以参考具体的 C 语言教程或参考手册,根据实际需要选择使用。同时,可以使用 printf 函数的返回值来判断是否输出成功。 scanf()输入十进制,八进制和十六进制值scanf 输入十六进制 在这里,我们将声明一个无符号的char变量,并输入不同格式的值,例如十进制格式,八进制格式和十六进制格式。 输入和打印十进制值–我们使用“%d”格式说明符 输入和打印八进制值–我们使用“%o”格式说明符 输入和打印十六进制值–我们使用“%x”格式说明符 #include int main(void) { //data range of unsigned char is in, //1) decimal format 0 to 255 //2) octal format 0 to 377 //3) hexadecimal format 0 to ff unsigned char var; printf("Enter decimal value b/w 0 to 255: "); scanf("%d", &var); printf("var = %d\n", var); printf("Enter octal value b/w 0 to 377: "); scanf("%o", &var); printf("var = %o\n", var); printf("Enter hexadecimal value b/w 0 to ff: "); scanf("%x", &var); printf("var = %x\n", var); return 0; }输出量 Enter decimal value b/w 0 to 255: 198 var = 198 Enter octal value b/w 0 to 377: 172 var = 172 Enter hexadecimal value b/w 0 to ff: f9 var = f9翻译自: https://www.includehelp.com/c-programs/input-decimal-octal-and-hexadecimal-values-in-character-variables.aspx |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |