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