next up previous contents
Next: 二進位檔讀寫 Up: 檔案讀寫 Previous: 寫入文字檔   Contents   DYWANG_HOME

讀取文字檔

  1. 讀取文字檔函式
    1. 從檔案讀一個字元宣告語法
      int fgetc( FILE * fp );
      
    2. 從檔案讀一個字串宣告語法
      char *fgets( char *buf, int n, FILE *fp );
      
    3. 從檔案格式化讀取資料宣告語法,format 格式與 printf 函式相同。
      int fscanf(FILE *stream, const char *format, ...)
      
  2. 範例:依據 fileio2.c 寫入格式來讀取檔案內容。
    [dywang@dyw219 zzz]$ vim fileio3.c
    [dywang@dyw219 zzz]$ cat fileio3.c
    #include <stdio.h>
    
    int main( int argc, char *argv[] ) {
    	FILE *fp;
    	char ch, buff1[10], buff2[10], buff3[10];
    	int i;
    	
    	fp = fopen( argv[1], "r" );
    	if( fp != NULL) {
    		ch = fgetc(fp);
    		fgets(buff1, 4, fp);
    		fscanf(fp, "%s %s %d", buff2, buff3, &i );
    		printf("%c%s\n%s %s %d\n", ch, buff1, buff2, buff3, i);
    	} 
    	else {
    		printf("File %s does not exist.\n", argv[1]);
    	}
    	fclose(fp);
    
    	return 0;
    }
    
  3. 編譯
    [dywang@dyw219 zzz]$ gcc -o fileio3 fileio3.c
    
  4. 執行結果:執行 fileio3 命令外加參數指定要開啟的檔案名 fio2test,讀取依據格式輸出。
    [dywang@dyw219 zzz]$ ./fileio3 fio2test 
    A--B
    str1 str2 2019
    
  5. 練習題:請寫一 C 語言程式,從命令列第一個參數指定的檔案讀取一串數字,印出共幾個數字及總和。
    例如:檔案中的數字為 3 12 34 6 7 輸出為:
    Ans=5,62



De-Yu Wang 2021-01-11