printf、sprintf與fprintf 的區別

來源:互聯網
上載者:User

1: fprintf()
#include <stdio.h> 
int fprintf( FILE *stream, const char *format, ... );
fprintf()函數根據指定的format(格式)發送資訊(參數)到由stream(流)指定的檔案.因此fprintf()可以使得資訊輸出到指定的檔案.比如
    char name[20] = "Mary";
    FILE *out;
    out = fopen( "output.txt", "w" );
    if( out != NULL )
    fprintf( out, "Hello %s\n", name );
對於其輸出格式參數,和printf()一樣.
fprintf()和printf()一樣工作. fprintf()的傳回值是輸出的字元數,發生錯誤時返回一個負值.
在有些地方,有這樣的定義:printf(...)=fprintf(stdout,...).

2:eg)
fprintf函數的用法!2007-12-13 21:46
fprintf是用於檔案操作的,原型是int fprintf( FILE *stream, const char *format [, argument ]...);

舉例用法:
#include <stdio.h>
#include <process.h>

FILE *stream;

void main( void )
{
int i = 10;
double fp = 1.5;
char s[] = "this is a string";
char c = '\n';

stream = fopen( "fprintf.out", "w" );
fprintf( stream, "%s%c", s, c );

fprintf( stream, "%d\n", i );
fprintf( stream, "%f\n", fp );
fclose( stream );
system( "type fprintf.out" );
}

螢幕輸出:

this is a string
10
1.500000

printf就是在螢幕列印出一段字串來啊
原型是int printf( const char *format [, argument]... );
標準輸出。

3:printf、sprintf與fprintf 的用法區分

1.printf 是和標準輸出檔案(stdout)關聯的,fprintf 則沒有這個限制.
 
2.fprintf是用於檔案操作的,原型是int fprintf( FILE *stream, const char *format [, argument ]...);

3.sprintf是格式化輸出到一個字串,fprintf是格式化輸出到一個stream,通常是到檔案
 
int   fprintf(   FILE   *stream,   const   char   *format   [,   argument   ]...);  
int   sprintf(   char   *buffer,   const   char   *format   [,  argument]   ...   );


*標準輸入輸出資料流
#include <stdio.h>

extern FILE *stdin;
extern FILE *stdout;
extern FILE *stderr;

stderr與stdin,stdout一樣,是流。 
  具體就是:
 stdin是標準輸入資料流,預設為鍵盤, 
 stdout是標準輸出資料流,預設為螢幕, 
 stderr是標準錯誤流,一般把螢幕設為預設,  也可以輸出到檔案。  

stdin,stdout可以重新導向到檔案,stderr輸出到螢幕; 
  所以如果輸出錯誤訊息,不要用printf("error"),fprintf(stdout,   "error"); 
  這是 因為訊息可能會被重新導向到檔案;
  要用fprintf(stderr,   "error");

bitcount函數來算一個數的二進位1的個數 例子bitcount(5)==2 5二進位就是101嘛,有兩個1

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.