c語言總結 7 檔案相關操作

2021-09-24 23:21:21 字數 3602 閱讀 7636

file *pf = fopen("test.txt", "w");

fputc('a', pf);

fputc('b', pf);

fputc('c', pf);

fclose(pf);

用只寫形式開啟乙個檔案,建立乙個新的檔案,結果生成乙個test.txt檔案,fputc函式寫入字元,內容為abc.

2.字元輸入函式(乙個乙個讀):fgetc

例如:

file *pf = fopen("test.txt", "r");

if (pf == null)

printf("%c\n", fgetc(pf));

printf("%c\n", fgetc(pf));

printf("%c\n", fgetc(pf));

fclose(pf);

pf = null;

用唯讀形式開啟上面生成的檔案,用fgetc函式讀字元,結果為a b c.

3.文字行輸出函式:fputs(寫入文字)

例如:

file *pf = fopen("test1.txt", "w");

fputs("zhangsan\n", pf);

fputs("lisi\n", pf);

fputs("wangwu\n", pf);

用只寫形式建立乙個檔案,用fputs函式寫入文字,結果為生成乙個檔案test1.txt,內容為zhangsan lisi wangwu.

4.文字行輸入函式:fgets(讀文字)

例如:

char buf[20] = ;

file *pf = fopen("test1.txt", "r");

if (pf == null)

fgets(buf, 20, pf);

printf("%s", buf);

fgets(buf, 20, pf);

printf("%s", buf);

fgets(buf, 20, pf);

printf("%s", buf);

fclose(pf);

pf = null;

fgets函式要將檔案中的內容儲存到一塊空間buf中,結果為zhangsan lisi wangwu.

5.格式化輸出函式 fprintf(寫檔案)

例如:

struct s

;int main()

; fprintf(pf, "%s %d %f",s.name,s.age,s.i);

fclose(pf);

pf = null;

return 0;

}

用只寫形式建立乙個test2.txt檔案,用fprintf函式寫入結構體的內容.

6.格式化輸入函式 fscanf(讀檔案)

例如:

file *pf = fopen("test2.txt", "r");

struct s s = ;

fscanf(pf,"%s %d %f", s.name, &(s.age), &(s.i));

printf("%s %d %f\n", s.name, s.age, s.i);

fclose(pf);

pf = null;

結果為zhangsan 20 3.140000,因為上一步寫入了此內容,用唯讀形式開啟檔案,用fscanf讀檔案.

7.記憶體輸出函式 sprintf(將結構體轉換為字串,涉及到記憶體)

例如:

struct s

;int main()

; char buf[30] = ;

struct s tmp = ;

sprintf(buf, "%s %d %lf", s.name, s.age, s.d);//將結構體轉換為字串,涉及到的是記憶體

printf("%s\n", buf);

return 0;

}

結果為張三 20 3.54

8.記憶體輸入函式 sscanf

例如:

//從buf中獲取乙個格式化的資料,放入tmp中

sscanf(buf, "%s %d %lf", tmp.name, &(tmp.age), &(tmp.d));

printf("%s %d %lf\n", tmp.name, tmp.age, tmp.d);

結果為張三 20 3.54

9.二進位制輸出 fwrite (以二進位制形式寫入)

例如:

struct s

;int main()

; if (pf == null)

fwrite(&s, sizeof(struct s), 1, pf);

fclose(pf);

pf = null;

return 0;

}

10.二進位制輸入 fread(以二進位制形式讀)

例如:

file *pf = fopen("test5.txt", "rb");

struct s s = ;

if (pf == null)

fread(&s, sizeof(struct s), 1, pf);

printf("%s %d %f\n", s.name, s.age, s.d);

fclose(pf);

pf = null;

以二進位制形式唯讀開啟檔案,用fread函式讀出檔案中的內容,為上面已經寫入的zhangsan 20 5.6.

file *pf = fopen("test.txt", "r");

if (pf == null)

printf("%c\n", fgetc(pf));

/*fseek(pf, 3, seek_cur);*/

/*fseek(pf, -2, seek_end);*///從檔案末尾偏移

fseek(pf, 4, seek_set);//起始位置偏移

seek_cur為當前位置,seek_end為末尾,seek_set為起始位置,例如讀的檔案的內容為abcdef,在第一次fgetc(pf)時讀到的內容為a,如果第二次想要讀到e,可以偏移3個,因此可以用fseek(pf, 3, seek_cur)表示從當前位置讀三個偏移量得到e,也可以用fseek(pf, -2, seek_end)表示從檔案末尾偏移-2到e,也可以為fseek(pf, 4, seek_set) 表示從起始位置偏移4個到e.

2.ftell函式(返回檔案指標相對於起始位置的偏移量)

3.rewind函式

例如:

rewind(pf);

printf("%c\n", fgetc(pf));//讓檔案回到起始的位置

rewind函式是讓檔案指標回到檔案的起始位置

C語言基礎 14 檔案操作

calderon函式也可以動態分配記憶體 這個函式可以把分配的所有記憶體內容都設定成0 這個函式也需要包含 stdlib.h標頭檔案 這個函式需要兩個引數,第乙個引數表示希望分配的儲存區個數,第二個引數表示單個儲存區的大小 這個函式的返回值是分配好的第乙個儲存區的位址 這個函式也可能失敗,如果失敗則...

C語言隨筆(七)檔案操作

通過程式實現檔案的讀取操作 為了方便函式的呼叫,c檔案之間呼叫函式通常使用.件進行宣告 將需要用到的函式宣告在.件中。首先我們要讀取的檔案內容為 這是我的的ip位址 ip 127.0.0.1 這是我的埠 port 8080 這是使用者名稱 username root 這是密碼 password ro...

7 檔案操作方法

執行python的三個步驟 1 啟動python直譯器 2 直譯器將test.py的內容從硬碟讀入記憶體 3 直譯器執行剛剛讀入記憶體的 識別python語法,比如 x 上 編碼 編碼 字元 unicode 其他編碼 解碼 解碼 字元 unicode 其他編碼 print x res x.encod...