c語言中fprintf
⑴ 請問c語言中printf和fprintf有什麼不同能不能說具體一點我是個初學者。謝謝!
printf是普通的輸出,也就是通常用的,是以整個輸出窗口為參考系
fprintf是在自己建立的文本裡面輸出,要先建立文本,才能用fprintf在文本中輸出,是以你建立的文本窗口為參考系
⑵ c語言fprintf
因為fprintf和printf類似,輸出的內容取決於字元串和參數,但fprintf的操作對象是文件而不是標准輸出設備。
格式化輸出就是根據「格式化字元串」的內容決定「具體輸出」的內容,比如
printf("%s,hello!","XXX");
"%s, hello!"就是格式化字元串,有點像模板,只是告訴函數一個輪廓,具體的細節由後面的參數("XXX")決定。所以具體輸出是「XXX, hello!」,這個你應該知道吧?
⑶ C語言 fwrite()和fprintf()的區別
fwrite是向流中寫入數據,而fprintf是向流中寫入格式數據。兩者的共同點為向流中寫入數據,至於區別可以看看兩者的申明:
size_tfwrite(
constvoid*buffer,
size_tsize,
size_tcount,
file*stream
);
intfprintf(
file*stream,
constchar*format[,
argument]...
);
前者fwrite寫入流stream中的數據是buffer指定的內容,內容的位元組大小分別由size和count兩個參數來指定,因此寫入流stream中的內容有可能是亂碼,但是有效的數據。
後者fprintf寫入流stream中的數據則由argument來指定,並且這些argument的內容分別由format指定的格式來顯示,因此寫入stream的內容通常來說是文本字元流,當然,也允許寫入格式亂碼。
兩者都可以將文本寫入流stream中。比如:
fwrite("helloworld!",1,12,fp);
與
fprintf(fp,"%s","helloworld!");
等價。
⑷ fprintf和printf有什麼區別嗎
1、原形:fprintf的函數原型為int fprintf( FILE *stream, const char *format, [ argument ]...);而printf的函數原型為:int printf( const char *format [, argument]... )。
2、輸出的目標:printf,是把格式字元串輸出到標准輸出(一般是屏幕,可以重定向);fprintf, 是把格式字元串輸出到指定文件設備中,所以參數筆printf多一個文件指針FILE*。
3、緩沖:printf是有緩沖的輸出;fprintf沒有緩沖。
4、功能:fprintf()傳送輸出到一個流中的函數;sprintf()格式化輸出到數組的函數。
5、返回值:fprintf()成功則返回輸出的位元組數,錯誤則返回EOF;sprintf()實際寫入數組的字元個數。
(4)c語言中fprintf擴展閱讀:
1、fprintf()傳送輸出到一個流中的函數
原形:int fprintf(FILE *stream,const char *format[,argument,...])
功能:①向文件指針指向的文件輸出ASCⅡ代碼
②向顯示器輸出錯誤信息
使用形式:
①fprintf(文件指針,"輸出格式",輸出項系列);
②fprintf(stderr,"錯誤信息");
使用實例:fprintf(stream,"%d %c %f",i,c,f);
其中定義FILE *stream;
int i;char c;float f;
返回值:成功則返回輸出的位元組數,錯誤則返回EOF。
頭文件:stdio.h
2、sprintf()格式化輸出到數組的函數
原形∶int sprintf(buf,format,arg_list)
其中char *buf;
功能∶把arg_list參量的值按format的格式輸出到buf中。
例∶sprintf(buffer,"相對扇區號∶%s(其中∶柱面號為%d/磁頭號為%d/扇區號為%d)",string,cyls,head,sector);
其中char buffer[100];
char *string="";
int cyls,head,sector;
返回值∶實際寫入數組的字元個數。
頭文件∶stdio.h
⑸ C語言中,「printf"與「fprintf」有什麼區別吖
printf是格式化輸入輸出,和一樓說的是一樣的。
fprintf是文件操作函數,一般格式是:
fprintf(文件指針,格式字元串,輸入表列)。
⑹ c語言關於fprintf的問題。
r 以只讀方式打開文件,該文件必須存在。
r+ 以可讀寫方式打開文件,該文件必須存在。
rb+ 讀寫打開一個二進制文件,允許讀寫數據,文件必須存在。
rw+ 讀寫打開一個文本文件,允許讀和寫。
w 打開只寫文件,若文件存在則文件長度清為0,即該文件內容會消失。若文件不存在則建立該文件。
w+ 打開可讀寫文件,若文件存在則文件長度清為零,即該文件內容會消失。若文件不存在則建立該文件。
你是以只讀方式打開文件的,所以沒有寫入文件的許可權,如果要寫入文件,應該用W+模式。
#include<stdio.h>
#include<stdlib.h>
intmain()
{
FILE*fp;
charfilename[40];
gets(filename);
if((fp=fopen
(filename,"w+"))!=NULL)
printf("succsssful");
//格式化輸出
fprintf(fp,"%s",filename);
}
⑺ C語言怎麼把字元串用fprintf寫入文本文件
把把字元串寫入文件,基本示例如下:
FILE *fp;
char s[]= "hello world!";
char c = ' ';
fp = fopen("file.txt","a");
fprintf(fp,"%s",s); //字元串使用%s
fprintf(fp,"%c",c); //字元使用%cfclose(fp);從文件讀取到字元串 char s1[30];fp=fopen("file.txt","r");fscanf(fp, "%[^ ] ", s1);printf("%s ",s1);fclose(fp); 本來挺簡單的一件事,可是讓我頭疼了好幾個小時。
在前面寫了 fp = fopen("file.txt","a");
fprintf(fp,"%s",s); //字元串使用%s
但是fclose(fp);這句被我寫在了return 0;之前,然後字元串死活寫不進文件裡面去。後來終於發現是因為使用了while(1)循環讀取埠數據,所以一直沒有執行fclose(fp);這句,才導致文件裡面一直是空的。所以fclose(fp);這句話不要忘記了哦~~ :)
⑻ c中fprintf的用法
%5d 的意思:5代表輸出的數是五位數,d代表輸出的格式為整型。
%6.3f的意思是:6代表輸出六位數,3代表小數點後面有三位數,(其中6包含小數點的位數),f代表按浮點數輸出 (float)
'\'是轉義字元,\n是換行,\\n是輸出'\n'
⑼ c語言fprintf的用法
用法示例:將數據輸入到文件1.txt中並打開1.txt文件。
#include<stdio.h>
#include<stdlib.h>
FILE*stream;
intmain()
{
inti=10;
doublefp=1.5;
chars[]="thisisastring";
charc=' ';
stream=fopen("1.txt","w");
fprintf(stream,"%s%c",s,c);
fprintf(stream,"%d ",i);
fprintf(stream,"%f ",fp);
fclose(stream);
system("1.txt");
return0;
}
(9)c語言中fprintf擴展閱讀:
功能
fprintf()函數根據指定的格式(format),向輸出流(stream)寫入數據(argument)。
函數說明
fprintf( )會根據參數format 字元串來轉換並格式化數據,然後將結果輸出到參數stream 指定的文件中,直到出現字元串結束('