物聯網學習教程—檔案的讀寫一
檔案的讀寫 一
一、字元輸入輸出函式(fputs() 和 fgets())
fputs 函式
函式呼叫:
fputs ( ch , fp ) ;
函式功能:
將字元(ch 的值)輸出到 fp 所指向的檔案中去。
返回值:
如果輸出成功,則返回值就是輸出的字元;
如果輸出失敗,則返回一個EOF 。
fgets 函式
函式呼叫:
ch = fgets ( fp );
函式功能:
從指定的檔案讀入一個字元, 該檔案必須是以讀或 讀寫方式開啟的。
返回值:
讀取成功一個字元,賦給ch。 如果遇到檔案結束符,返回一個檔案結束標誌 EOF 。
常見的讀取字元操作
從一個文字檔案順序讀入字元並在螢幕上顯示出來:
ch = fgetc ( fp );
while ( ch ! =EOF )
{
putchar ( ch );
ch = fgetc ( fp );
}
注意:EOF 不是可輸出字元,因此不能在螢幕上顯示。
由於字元的ASCII 碼不可能出現-1,因此 EOF 定義為 -1是合適的。當讀入的字元值等於-1時,表示讀入 的已不是正常的字元而是檔案結束符。
常見的讀取字元操作
從一個二進位制檔案順序讀入字元:
while (! feof ( fp ))
{
ch = fgetc ( fp );
}
注意:ANSI C 提供一個 feof ()函式來判斷檔案是否真的結束。如果是檔案結束,函式 feof ( fp )的值為1 (真);否則為0(假)。以上也適用於文字檔案的讀取。
#include <stdlib.h>
#include <stdio.h>
void main(void)
{ FILE *fp;
char ch,filename[10];
scanf("%s",filename);
if((fp=fopen(filename,"w"))==NULL) {
printf("cannot open file\n");
exit(0); /* 終止程式 */}
ch=getchar( ); /* 接收執行 scanf 語句時最後輸入的回車符 */
ch=getchar( ); /* 接收輸入的第一個字元 */
while(ch!='#'{
fputc(ch,fp);putchar(ch);
ch=getchar(); }
fclose(fp);
}
執行情況如下:
file1.c (輸入磁碟檔名)
computer and c#(輸入一個字串)
computer and c (輸出一個字串)
#include <stdlib.h>
#include <stdio.h>
main( )
{FILE *in,*out;
char ch,infile[10],outfile[10];
printf("Enter the infile name:\n");
scanf("%s",infile);
printf("Enter the outfile name:\n");
scanf("%s",outfile);
if((in=fopen(infile,"r"))==NULL)
{ printf("cannot open infile\n");
exit(0);}
if((out=fopen(outfile,"w"))==NULL)
{ printf("cannot open outfile\n");
exit(0);}
while(!feof(in))fputc(fgetc(in),out);
fclose(in);
fclose(out);}
執行情況如下:
Enter the infile name
file1.c(輸入原有磁碟檔名
Enter the outfile n ame:
file2.c (輸入新複製的磁碟檔名)
程式執行結果是將file1.c檔案中的內容複製到 file2.c中去。
執行方法:#include <stdlib.h>
#include <stdio.h>
main(int argc,char *argv[ ])
{FILE *in,*out;
char ch;
if (argc!=3)
{ printf("You forgot to enter a filename\n");
exit(0); }
if((in=fopen(argv[1],"rb"))==NULL)
{ printf("cannot open infile\n");
exit(0);}
if((out=fopen(argv[2],"wb"))==NULL)
{ printf("cannot open outfile\n");
exit(0);}
while(!feof(in)) fputc(fgetc(in),out);
fclose(in);
fclose(out);}
設經編譯連線後得到的可執行檔名為a.exe ,則在 DOS 命令工 作方式下,可以輸入以下的命令列:
C>a file1.c file2.c
file1.c和file2.c,分別輸入到argv[1] 和argv[2]中,argv[0]的內容為 a ,argc的
值等於3 。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69914734/viewspace-2655115/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 物聯網學習教程—檔案的讀寫二
- 物聯網學習教程—檔案的定位
- 物聯網學習教程——執行緒同步與互斥:讀寫鎖執行緒
- 物聯網學習教程——一維陣列的引用陣列
- 物聯網學習教程——if語句
- 物聯網學習教程—Linux 可執行檔案結構與程式結構Linux
- 物聯網學習教程——switch語句
- 物聯網學習教程——if語句2
- python學習之讀寫檔案Python
- 物聯網學習教程—const用法的體會
- 物聯網學習教程—字串與指標字串指標
- 物聯網學習教程—const關鍵字
- 物聯網學習教程——執行緒池執行緒
- 物聯網學習教程—列舉型別型別
- 物聯網學習教程—c++學習應該注意的點C++
- 物聯網學習教程——二維陣列的引用陣列
- 物聯網學習教程—函式的返回值函式
- 物聯網學習教程—Const用法和體會
- 物聯網學習教程—多型的實現機制多型
- C++學習筆記----讀寫檔案C++筆記
- 物聯網學習教程——格式輸入與輸出
- 物聯網學習教程—— 執行緒私有資料執行緒
- 物聯網學習教程—用typedef定義型別型別
- 物聯網的學習路線
- 【python系統學習17】python中的檔案讀寫Python
- 物聯網學習教程— 多維陣列與指標陣列指標
- 物聯網學習教程—函式引數和函式的值函式
- 檔案的讀寫
- 物聯網學習教程Linux系統程式設計之檔案描述符的複製:dup()和dup2()Linux程式設計
- 物聯網學習教程— 字元指標作函式引數字元指標函式
- 物聯網學習教程—常見錯誤和程式除錯除錯
- 讀懂物聯網
- Python 簡明教程 --- 24,Python 檔案讀寫Python
- 普通檔案的讀寫
- 物聯網學習教程——邏輯運算子和邏輯表示式
- 物聯網學習教程—定義結構體型別變數的方法結構體型別變數
- Python檔案讀寫--錯誤一Python
- 檔案排版(文字檔案讀寫)