文件處理是每個程序員都需要處理的任務之一。無論是讀取文件內容,還是將數據寫入文件,首先你需要創建一個文件處理單並對其進行操作。 在本文中,我們將詳細介紹如何創建、打開、讀取、寫入和關閉文件處理單。此外,我們還將介紹如何在文件中定位位置和處理文本文件和二進位文件。
一、創建和打開文件處理單
在開始之前,我們需要引入兩個頭文件:stdio.h和stdlib.h。
#include <stdio.h> #include <stdlib.h>
創建文件處理單的第一步是使用fopen()函數打開一個文件。該函數需要兩個參數:要打開的文件名和文件的打開模式 (“r”或 “w” )。
當文件不存在時,fopen()函數將自動創建一個新的文件。以下是要打開一個名為「example.txt」的文件並以只讀模式打開的代碼示例。
FILE *fp; fp = fopen("example.txt", "r");
如果您想以寫入模式打開文件,請使用 “w”。 以下是一個示例,如何創建一個名為「example.txt」的文件並以寫入模式打開。
FILE *fp; fp = fopen("example.txt", "w");
二、讀取文件內容
在打開文件後,您可以使用fscanf()或fgets()函數從文件中讀取數據。
對於一個名為「example.txt」的文件,如果你想讀取其中的內容,可以使用以下代碼:
FILE *fp; char ch; fp = fopen("example.txt", "r"); while((ch = fgetc(fp)) != EOF) { printf("%c", ch); } fclose(fp);
如果你想一次讀取一行,可以使用fgets()函數。
FILE *fp; char str[60]; fp = fopen("example.txt", "r"); while(fgets(str, 60, fp) != NULL) { printf("%s", str); } fclose(fp);
三、寫入文件內容
類似於讀取,使用fprintf()函數將數據寫入文件中。
FILE *fp; char str[60] = "hello world!"; fp = fopen("example.txt", "w"); fprintf(fp, "%s", str); fclose(fp);
四、定位文件指針
在某些情況下,您需要在文件中定位位置,以讀取或寫入數據。您可以使用ftell()或fseek()函數進行此操作。
ftell()函數返迴文件指針的當前位置。以下是一個示例:
FILE *fp; long int position; fp = fopen("example.txt", "r"); position = ftell(fp); fclose(fp);
使用fseek()函數可以在文件中移動指針。示例代碼如下:
FILE *fp; long int position; fp = fopen("example.txt", "r"); fseek(fp, 10, SEEK_SET); position = ftell(fp); // position is now 10 fclose(fp);
五、處理文本文件和二進位文件
文件可以是文本文件或二進位文件。文本文件通常包含可讀的ASCII字元,可以使用普通的文件輸入/輸出函數。但是,二進位文件包含無法列印的數據,因此您必須使用二進位文件讀取/寫入函數。
讀取或寫入文本文件的代碼示例:
FILE *fp; char str[60]; fp = fopen("example.txt", "r"); fscanf(fp, "%s", str); fclose(fp);
讀取或寫入二進位文件的代碼示例:
FILE *fp; int numbers[5] = {1, 2, 3, 4, 5}; fp = fopen("example.bin", "wb"); fwrite(numbers, sizeof(int), 5, fp); fclose(fp); fp = fopen("example.bin", "rb"); fread(numbers, sizeof(int), 5, fp); fclose(fp);
結論
這裡,我們已經了解到了如何創建、打開、讀取、寫入和關閉文件處理單。此外,我們還了解了如何在文件中定位位置和處理文本文件和二進位文件。在實際編程中,這些基本操作都是不可或缺的,更深入的內容需要你在實踐中探索。
原創文章,作者:VRQDP,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/373701.html