printf函数及sprintf函数及fprintf函数使用详解

printf函数

函数原型

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

sprintf函数

函数原型

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

fprintf函数

函数原型

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





你可能感兴趣的:(printf,sprintf,格式化,fprintf,压栈)