• printf,sprintf,fprintf的区别与联系


    在写代码过程中总会遇到printf和sprintf,既然这两个都遇到了,那么不妨再加一个fprintf吧.

    他们三个都是将格式化字符串输出,区别就是他们输出的目标不一样.

    (1)、printf,是把格式化字符串输出到标准输出(一般是屏幕).

    printf()是C语言标准库函数,用于将格式化后的字符串输出到标准输出。标准输出,即标准输出文件,对应终端的屏幕。

    printf()声名于头文件stdio.h。

    函数原型 int printf ( const char * format, ... );

    返回值: 正确返回输出的字符总数,错误返回负值,与此同时,输入输出流错误标志将被置值,可由指示器ferror来检查输入输出流的错误标志。

    调用格式: 
    printf()函数的调用格式为:printf("格式化字符串",输出表列)。
    格式化字符串包含三种对象,分别为: 
      1)字符串常量; 
      2)格式控制字符串; 
      3)转义字符。 
    字符串常量原样输出,在显示中起提示作用。输出表列中给出了各个输出项,要求格式控制字符串和各输出项在数量和类型上应该一一对应。其中格式控制字符串是以%开头的字符串,在%后面跟有各种格式控制符,以说明输出数据的类型、宽度、精度等。

    (2)、sprintf,是把格式化字符串输出到指定字符串,所以参数比printf多了个char * ,那就是目标字符串的地址.

    srpintf()函数的功能非常强大:效率比一些字符串操作函数要高;而且更具灵活性;可以将想要的结果输出到指定的字符串中,也可作为缓冲区,而printf只能输出到命令行上。如果想要把sprintf中的内容输出,则可以再在后面加一句printf()即可(如文末栗子中所示)~

    头文件:stdio.h

    函数功能:格式化字符串,将格式化的数据写入字符串中。

    函数原型:int sprintf(char *buffer, const char *format, [argument]...)

    参数:

      1)buffer:是char类型的指针,指向写入的字符串指针;

      2)format:格式化字符串,即在程序中想要的格式;

      3)argument:可选参数,可以为任意类型的数据;

    函数返回值:buffer指向的字符串的长度;

    (3)、fprintf,是把格式化字符串输出到指定文件中,所以参数比printf多了个文件指针File * ,那是目标文件的文件描述符(文件流指针)

    下面举个小栗子来演示下:

    总结:

    都是把格式好的字符串输出,只是输出的目标不一样:
    1 )printf,是把格式字符串输出到标准输出(一般是屏幕,可以重定向);
    2 )sprintf,是把格式字符串输出到指定字符串中,所以参数比printf多一个char*。那就是目标字符串地址;
    3 )fprintf, 是把格式字符串输出到指定文件设备中,所以参数笔printf多一个文件指针FILE*。

     参考:

    1. printf,sprintf,fprintf的区别

    2.sprintf、fprintf和printf这三个函数有什么区别?

  • 相关阅读:
    ZOJ 1001 A + B Problem
    献给那些心软的人!!
    将表格的数据插入另一个表格
    把链接 显示为方框
    【ibus】设置ibus输入法(pinyin & sunpinyin)
    [Mongo] How to Install Mongo on Debian(不要安装)
    [Sinatra、Mongo] Mongo
    Sinatra+SQLite3+DataMapper
    [sinatra] Sinatra再入门
    [slim] Slim
  • 原文地址:https://www.cnblogs.com/gjmhome/p/13845394.html
Copyright © 2020-2023  润新知