本文转自:http://www.cnblogs.com/zhangyabin---acm/p/3203745.html

先区分一下:printf,sprintf,fprintf。

1,printf就是标准输出,在屏幕上打印出一段字符串来。

2,sprintf就是把格式化的数据写入到某个字符串中。返回值字符串的长度。

3,fprintf是用于文件操作。

原型:int fprintf(FILE *stream,char *format,[argument]);

功能:fprintf()函数根据指定的format(格式)发送信息(参数)到由stream(流)指定的文件.因此fprintf()可以使得信息输出到指  定的文件。

  例子:
  char name[] = "lucy"; 
   FILE *out;
    out = fopen( "output.txt", "w" );
    if( out != NULL )
    fprintf( out, "Hello %s\n", name );
    返回值:若成功则返回输出字符数,若输出出错则返回负值。

stdout 与 stderr

stdout, stdin, stderr的中文名字分别是标准输出,标准输入和标准错误。

1,标准输出和标准错误默认都是将信息输出到终端上,那么他们有什么区别呢?让我们来看个题目:

  问题:下面程序的输出是什么?(intel笔试2011)

 int main(){
fprintf(stdout,"Hello ");
fprintf(stderr,"World!");
return0;
}

  输出是

  World!Hello

  在默认情况下,stdout是行缓冲的,他的输出会放在一个buffer里面,只有到换行的时候,才会输出到屏幕。而stderr是无缓冲的,会直接输出,举例来说就是printf(stdout, "xxxx") 和 printf(stdout, "xxxx\n"),前者会憋住,直到遇到新行才会一起输出。而printf(stderr, "xxxxx"),不管有么有\n,都输出。

2、  fprintf(stderr, "Can't open it!\n"); 
   fprintf(stdout, "Can't open it!\n"); 
   printf("Can't open it!\n");

  stdout -- 标准输出设备 (printf("..")) 同 stdout。 
  stderr -- 标准错误输出设备 
  两者默认向屏幕输出。 
  但如果用转向标准输出到磁盘文件,则可看出两者区别。stdout输出到磁盘文件,stderr只能在屏幕。

stderr和stdout(printf、fprintf、sprintf)(转)的更多相关文章

  1. printf, fprintf, sprintf, snprintf, vprintf, vfprintf, vsprintf, vsnprintf - 输出格式转换函数

    参考:http://blog.sina.com.cn/s/blog_674b5aae0100prv3.html 总览 (SYNOPSIS) #include <stdio.h> int p ...

  2. [misc]printf/fprintf/sprintf/snprintf函数

    转自:http://blog.csdn.net/To_Be_IT_1/article/details/32179549 需要包含的头文件 #include <stdio.h> int pr ...

  3. printf, fprintf, sprintf, snprintf, vprintf, vfprintf, vsprintf, vsnprintf - 输出格式转换

    总览 (SYNOPSIS) #include <stdio.h> int printf(const char *format, ...); int fprintf(FILE *stream ...

  4. [ Skill ] print println printf fprintf sprintf lsprintf

    https://www.cnblogs.com/yeungchie/ 几种 print 函数的差异 print 接收任意的数据类型,并打印到 CIW print( 12345 ) ; 12345 pr ...

  5. printf、sprintf与fprintf 的用法区分

    原文链接 1: fprintf()#include <stdio.h> int fprintf( FILE *stream, const char *format, ... );fprin ...

  6. stderr和stdout详细解说

    今天又查了一下fprintf,其中对第一个参数stderr特别感兴趣. int fprintf(FILE *stream,char *format,[argument]): 在此之前先区分一下:pri ...

  7. stderr 和stdout

    今天又查了一下fprintf,其中对第一个参数stderr特别感兴趣. int fprintf(FILE *stream,char *format,[argument]): 在此之前先区分一下:pri ...

  8. 标准输出中stderr和stdout的区别

    一.首先介绍一下三者printf,sprintf,fprintf的功能 1,printf就是标准输出,在屏幕上打印出一段字符串来. 2,sprintf就是把格式化的数据写入到某个字符串中.返回值字符串 ...

  9. stderr和stdout详细解说(转)

    今天又查了一下fprintf,其中对第一个参数stderr特别感兴趣. int fprintf(FILE *stream,char *format,[argument]): 在此之前先区分一下:pri ...

随机推荐

  1. leetcode529

    public class Solution { //DFS public char[,] UpdateBoard(char[,] board, int[] click) { ), n = board. ...

  2. 【开发工具】Jenkins+Gitlab实现自动化部署

    我在尝试在容器中安装Jenkins时,初衷是希望使用docker in docker 的模式来实现Jenkins slave容器按需创建.在实现的时候需要在Jenkins 中安装Kubernetes插 ...

  3. #if (DEBUG)

    //DEBUG必须大写,其它是不认的#if (DEBUG)            Console.WriteLine("Debug");#else            Conso ...

  4. 前端开发之HTML篇一

    主要内容:     一.HTML简介 二.HTML标签        三.HTML文档结构和注释        四.head标签及相关内容        五.body标签及相关内容 1️⃣   HTM ...

  5. sha1sum校验下载的文件

    [root@mhc1 test]# sha1sum Percona-XtraBackup-2.4.8-r97330f7-jessie-x86_64-bundle.tara9c6b1c7cb3bf98b ...

  6. GL_LINES & GL_LINE_STRIP & GL_LINE_LOOP

    [GL_LINES] 独立的线段,下式中,p2与p3间没有连线. [GL_LINE_STRIP] 连续的线段,下式中, p2与p3会连成线段. [GL_LINE_LOOP] 参考:<计算机图形学 ...

  7. linux: 空指令(:)

    :指令 描述: 空命令,除了参数替换和重定向外不执行任何操作,总是保证退出码为0. eg1:创建文件(不需要调用其它程序,速度更快) :>/path/to/file 测试: 创建10000个不存 ...

  8. pthread_mutex_init函数与pthread_mutexattr_init函数

    直接上英文解释: pthread_mutex_init()如下: NAME pthread_mutex_init, pthread_mutex_destroy - initialise or dest ...

  9. ChainOfResponsibilityPattern(23种设计模式之一)

    参考书籍:设计模式-可复用面向对象软件基础(黑皮书) 目的:使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系.将这些对象连成一条链,并沿这条链传递该请求,直到有一个对象处理它为止 ...

  10. Mysql Join语法以及性能优化

    引言 内外联结的区别是内联结将去除所有不符合条件的记录,而外联结则保留其中部分.外左联结与外右联结的区别在于如果用A左联结B则A中所有记录都会保留在结果中,此时B中只有符合联结条件的记录,而右联结相反 ...