1. 程式人生 > >freopen和fopen的區別(檔案操作輸入輸出)

freopen和fopen的區別(檔案操作輸入輸出)

C語言中freopen()函式是用來重新定向的,所謂重新定向是給輸入和輸出的位置重新定向。原本輸入位置是鍵盤快取區,輸出在螢幕上,用了重新定向後可以將輸入位置改變成一個檔案,而輸出位置也可以輸出到一個檔案中,具體程式碼可以這麼寫:

freopen ("text.txt","r",stdin);  freopen ("text1.txt","w",stdout);

這裡輸入和輸出便都在檔案中操作了。可是這樣做有一個弊端,就是所有輸入輸出都將在檔案中操作,如何靈活控制呢?這就要用到fopen()函數了,可以自由在檔案輸入輸出中轉換,具體語法是:

FILE *fin,*fout;  fin = fopen("text.txt","rb");  fout = fopen("text1.txt","wb");  fscanf (fin,"%d",&x);  fprintf (fout,"%d",x);  fclose(fin);  fclose(fout);

這裡函式稍微複雜了些,不過仔細看看也蠻簡單的,最重要的是多了檔案關閉操作,這樣是為了不持續佔用系統資源。在讀取、寫入操作時用“rb”的原因是為了相容Linux系統,只在windows下執行只要“r”即可,同樣,scanf和printf函式都要改成fscanf和fprintf,在前面加上你要輸入的檔案和輸出的檔名,這樣就可以有選擇性的操作檔案了。