zoukankan      html  css  js  c++  java
  • 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这三个函数有什么区别?

  • 相关阅读:
    win7下的vxworks总结
    ubuntu 无法获得锁 /var/lib/dpkg/lock
    项目中用到了的一些批处理文件
    win7下安装 WINDRIVER.TORNADO.V2.2.FOR.ARM
    使用opencv统计视频库的总时长
    January 05th, 2018 Week 01st Friday
    January 04th, 2018 Week 01st Thursday
    January 03rd, 2018 Week 01st Wednesday
    January 02nd, 2018 Week 01st Tuesday
    January 01st, 2018 Week 01st Monday
  • 原文地址:https://www.cnblogs.com/gjmhome/p/13845394.html
Copyright © 2011-2022 走看看