C语言中printf,sprintf和fprintf的区别是什么


本文摘自PHP中文网,作者青灯夜游,侵删。

printf,sprintf和fprintf都是C语言的输出语句,都是把格式好的字符串输出。那么这三者有什么区别,下面本篇文章就来认识一下printf,sprintf和fprintf,介绍它们之间的区别,希望对大家有所帮助。

printf

printf函数用于在标准输出设备(stdout控制台)上输出文本(字符串/字符流)或值。

基本语法

1

int printf(const char * format,...);

说明:

format提供了文本字符串的格式,该格式将在输出设备上使用%s,%d,%f等格式说明符进行输出。

...提供需要输出的参数列表。

返回类型int返回屏幕上输出的字符总数。

示例:

1

2

3

4

5

6

7

8

9

#include<stdio.h>

int main()

{

   printf("hello geeksquiz");

    printf("\n");

   int  a=2;

   printf("%d",a);

   return 0;

}

输出:

2.jpg

sprintf

sprintf用于将格式化文本(字符串/字符流)发送(复制)到字符串缓冲区上。

基本语法

1

int sprintf(char * str,const char * format,...);

说明:

● char * str : 将在其中发送(复制)格式化文本的字符数组。

● format在格式说明符的帮助下提供格式化文本。

● ...提供需要输出的参数列表。

● 返回类型int将复制(发送)字符的总数返回到char * str中。

示例:

1

2

3

4

5

6

7

8

9

10

11

12

#include <stdio.h>

int main()

{

    char str[100];

    int n;

     

    n=sprintf((char*)str,"我的名字是%s, I am %d years old.","Mike",23);

     

    printf("Text is: %s\n",str);

    printf("Total number of copied characters are: %d\n",n);

    return 0;

}

说明:sprintf将字符串存储在指定的char缓冲区上,再通过printf在stdout控制台上输出。

输出:

3.jpg

fprintf

fprintf用于在文件中输出字符串内容,但不在stdout控制台上输出。

基本语法:

1

int fprintf(FILE * fptr,const char * str,...);

说明:

fptr :这是指向 FILE 对象的指针,该 FILE 对象标识了流。

str:这是 C 字符串,包含了要被写入到流 stream 中的文本。

示例:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

#include<stdio.h>

int main()

{

    int i, n=2;

    char str[50];

   

    //open file sample.txt in write mode

    FILE *fptr = fopen("sample.txt", "w");

    if (fptr == NULL)

    {

        printf("无法打开文件");

        return 0;

    }

   

    for (i=0; i<n; i++)

    {

        puts("输入名称");

        gets(str);

        fprintf(fptr,"%d.%s\n", i, str);

    }

    fclose(fptr);

   

    return 0;

}

输出:

360截图20190125164812469.jpg

sample.txt中:

4.jpg

总结:

printf,sprintf和fprintf的区别是:它们的输出目标不一样。printf在stdout控制台上输出数据字符流;sprintf将数据字符流发送指定的char缓冲区上;fprintf用于在文件中输出字符串内容。

以上就是本篇文章的全部内容,希望能对大家的学习有所帮助。更多精彩内容大家可以关注php中文网相关教程栏目!!!

以上就是C语言中printf,sprintf和fprintf的区别是什么的详细内容!

相关阅读 >>

从事c/c++开发多年,给零基础想学习c/c++的几点建议

strcmp在c语言中是什么意思?

常见的c++中const常量用法分析讲解

c ++中accessor函数的特征

c语言数组在内存中是怎么分配的?

c++ 判断本机是否有.net环境

c语言中 & 是什么意思?

c语言 三种求回文数的算法

c 语言中 strlen 是什么意思?

c 语言中 fun 函数怎么用?

更多相关阅读请进入《c》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...