int printf(char *format[,argument…]);
字符串format为格式字符串,[,argument···]为变量列表。
包含头文件stdio.h可调用此函数
常用的格式输出函数
%c 一个字符
%d 有符号十进制整数
%e 浮点数、e-记数法
%E 浮点数、E-记数法
%f 浮点数、十进制记数法
%i 有符号十进制数(与%d相同)
%o 无符号八进制整数
%p 指针
%s 字符串
%u 无符号十进制整数
%x 使用十六进制数字0f的无符号十六进制整数
%X 使用十六进制数字0f的无符号十六进制整数
%% 打印一个百分号
例子:
#include<stdio.h> int main() { int a='a'; float b=3.1415; int *p=&a; char *str="hello world!"; printf("%d\n",a); printf("%c\n",a); printf("%e\n",b); printf("%E\n",b); printf("%f\n",b); printf("%i\n",a); printf("%o\n",a); printf("%p\n",p); printf("%s\n",str); printf("%u\n",a); printf("%x\n",a); printf("%X\n",a); printf("%%\n"); a=-10; printf("%u\n",a); return 0; }
结果:
97 a 3.141500e+000 3.141500E+000 3.141500 97 141 0022FF44 Hello world! 97 61 61 % 4294967286
+或省略输出: 表示右对齐输出
- : 有-表示左对齐输出
m.n : m指域宽,即对应的输出项在输出设备上所占的字符数。n指精度。用于说明输出的实型数的小数位数。为指定n时,隐含的精度为n=6位。
例子:
#include<stdio.h> int main() { float b=3.1415; double d=3.1415; char *str="hello world!"; printf("%f\n",d); printf("%.4f\n",d); printf("%.2f\n",d); printf("%6.4f\n",d); printf("%4.4f\n",d); printf("%10.4f\n",d); printf("%-10.4f\n",d); printf("%s\n",str); printf("%.5s\n",str); printf("%6.5s\n",str); return 0; }
3.141500 3.1415 3.14 3.1415 3.1415 3.1415 3.1415 hello world! hello hello
printf函数遵守C调用规范,即参数 从右至左 压栈,堆栈由调用者平衡。(这种从右至左的方式不会随着编译器,机器的不同而不同)
例子:
#include<stdio.h> int main() { char *str="abc"; char *p=str; printf("%c%c",*p,(*p++)); return 0; }
ba
int sprintf(char *string, char *format[,argument…]);
字符串format为格式字符串,[,argument···]为变量列表。
包含头文件stdio.h可调用此函数
将格式化的字符串format存储到字符串string里面
例子:
#include<stdio.h> int main() { char *name="jack"; char *str; sprintf(str,"hello %s",name); printf("%s\n",str); return 0; }
Hello jack
int fprintf(FILE *stream, char *format[,argument…]);
字符串format为格式字符串,[,argument···]为变量列表。
包含头文件stdio.h可调用此函数
fprintf()函数根据指定的format(格式)发送信息(参数)到由stream(流)指定的文件. fprintf()只能和printf()一样工作. fprintf()的返回值是输出的字符数,发生错误时返回一个负值.
#include<stdio.h> int main() { char *name="jack"; FILE *f; char str[1024]={0}; f=fopen("test.txt","w"); fprintf(f,"hello %s",name); fclose(f); f=fopen("test.txt","r"); fread(str,1024,1,f); printf("%s\n",str); fclose(f); return 0; }结果:
hello jack