printf函数

打印基本类型

以下打印基本的数据类型, 如int, char, float等, 最后两行是以八进制和十六进制打印数字10

  1. int aint=10;
  2. float afloat=1.1;
  3. double adouble=2.2;
  4. char achar=‘a‘;
  5. char*str="string";
  6. printf("int aint=%d\n",aint);
  7. printf("float afloat=%f\n",afloat);
  8. printf("double adouble=%f\n",adouble);
  9. printf("char achar=%c\n",achar);
  10. printf("char *str=%s\n",str);
  11. printf("octal int aint=%o(8)\n",aint);
  12. printf("hex int aint=%x(16)\n",aint)

windows gcc输出:

设置输出宽度

设置每个整数占10个位置, 默认为右对齐
如果数字的长度比设置的宽度大, 那么会忽略我们设置的输出宽度

  1. int a=1,b=2,c=3,d=4;
  2. printf("%10d, %10d\n", a, b);
  3. printf("%10d, %10d\n", a, b);

windows gcc输出:

对齐,填充

在上一个例子中, 设置宽度后默认是右对齐, 我们可以在10前加一个-(减号)设置为左对齐
在上一个例子中, 当整数的长度少于我们设置的宽度时会用空格去填充,我们 可以在10前加一个0用0进行填充

  1. int a=1,b=2,c=3,d=4;
  2. printf("%-10d, %-10d\n", a, b);
  3. printf("%010d, %010d\n", a, b);

windows gcc输出:

精度

在时浮点数字后面跟的小数点很长,如pi=3.1415… , 但我们只想看小数点后2位或3位
%.xf, 其中的x就是我们要保留的小数点后的位数,在x前面有个点号为精度标志

  1. double pi=3.1415926;
  2. printf("%.3f\n",pi);
  3. printf("%.6f\n",pi);

windows gcc输出:

超长整数

%lld 用于输出像long long这类超长的整数, 中间的两个ll是long long的缩写

  1. longlong a=123456789012345;
  2. printf("%lld\n", a);

小结

printf的格式化工作: %[对齐,填充,正负][输出宽度][精度][超长整数]基本类型
中括号括着的表示可有可无, 百分号和基本类型这两部分不能为空
在[对齐,填充,正负]中的正负用+(加号)来表示, 如果整数为正就显示一个+,如果为负就显示一个-

收尾例子: 显示浮点数前的加号; 不显示浮点数的小数部分

  1. float a=10.01;
  2. printf("%+f\n",a);
  3. printf("%+.0f\n",a)

来自为知笔记(Wiz)

时间: 2024-10-10 09:25:21

printf函数的相关文章

printf函数重定向

printf函数底层会调用fputc函数 /*重定向c库函数printf到USART1*/ int fputc(int ch, FILE *f) { /*发送一个字节数据USART1 */ USART_SendData(DEBUG_USART, (uint8_t) ch); /* 等待发送完毕 */ while (USART_GetFlagStatus(DEBUG_USART, USART_FLAG_TXE) == RESET); return (ch); }

对于printf函数和C语言编程的初步拓展

前面说过了,任何程序都要有输出,所以printf函数是一个很重要的函数,所以有必要在学变量之前先拓展一下. 其实编程就是用计算机语言说话,一句一句地说,只要语法没错就能运行,至于能实现什么功能,就看编程者的水平了. 那么看一下下面的代码 #include<stdio.h> int main(void) { printf("hello world"); printf("hello world"); return 0; } 你觉得运行的结果在屏幕上会显示什么

C的第一课printf函数的基本用法

printf函数: printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出信息. printf()函数的调用格式为: printf("<格式化字符串>", <参量表>). #include <stdio.h> /* printf函数 printf("<格式化字符串>", <参量表>) */ int main() { int i=8,j=6; int *p=NULL; char *nam

黑马程序员----printf函数和scanf函数

一.printf函数和scanf函数,都被定义在头文件stdio.h里,因此在使用scanf函数时要加上#include <stdio.h>. 二.printf函数 1.定义:printf()函数是格式化输出函数, 一般用于向终端按规定格式输出信息; 2.格式:printf("XXXXXXXX"); 三.scanf函数 1.定义:scanf()函数按用户指定的格式从键盘上把数据输入到指定的变量之中; 2.格式:scanf("%d", &numbe

C语言中如何用printf函数输出百分号?

打两个%%..比如printf( "%%\n" );就可以输出一个百分号.同理,输出两个百分号的话就需要写四个. #include <stdio.h> int main(int argc, const char * argv[]) { printf("%%%%");//printf函数打印 % 字符要用 %% 才能打印 return 0; }

利用printf()函数,打印一个由*号组成的大写字母A

#include <stdio.h > void main() { printf(" *\n") ; printf(" * *\n"); printf(" *****\n"); printf(" * *\n"); printf(" * *\n") ; } 利用printf()函数,打印一个由*号组成的大写字母A,布布扣,bubuko.com

c语言中printf()函数中的参数计算顺序

今天看到了一个关于printf()函数计算顺序的问题,首先看一个例子: #include<stdio.h> int main() { printf("%d---%d---%d",printf("ab"),printf("c"),printf("eee")); } 输出结果为: 这说明printf()函数在计算的时候顺序是从右往左的,但最后输出的顺序是从左往右的.所以遇到类似题目时,应该根据运算顺序和输出顺序灵活判断

【C语言】浅谈可变参数与printf函数

一.何谓可变参数 int printf( const char* format, ...); 这是使用过C语言的人所再熟悉不过的printf函数原型,它的参数中就有固定参数format和可变参数(用"-"表示). 而我们又可以用各种方式来调用printf,如: printf( "%d ",value); printf( "%s ",str); printf( "the number is %d ,string is:%s ",

关于printf函数的返回值问题

#include <stdio.h> #include <stdlib.h> int main() { printf("%d", printf("%d", printf("%d", 43))); system("pause"); return 0; } 大家平时经常使用printf这个输出函数,但是有多少人想过它的返回值是什么?或者想过它有没有返回值! 通过上面程序的运行结果就可以知道printf函数的

一个简化的printf函数

<C和指针>第7章第5道编程题: 实现一个简化的printf函数,它能够处理%d.%f.%s 和 %c 格式码,根据ANSI标准的原则,其他格式码的行为是未定义的.你可以假定已经存在函数 printf_integer 和 printf_float,用于打印这些类型的值.对于另外两个类型的值,使用 putchar 来打印. 答案参考百度知道 1 /* 2 ** 实现一个简易的printf函数 3 ** 它能处理%d, %f, %s,%c格式码 4 */ 5 6 #include <stda