選單
×
   ❮   
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

C 讀取檔案


讀取檔案

在上一章中,我們在 fopen() 函式中使用 wa 模式寫入了檔案。

要從檔案中讀取內容,您可以使用 r 模式

示例

FILE *fptr;

// 以讀取模式開啟檔案
fptr = fopen("filename.txt", "r");

這會將 filename.txt 檔案開啟以供讀取。

在 C 語言中讀取檔案需要一些工作。請耐心點!我們將一步一步指導您。

接下來,我們需要建立一個足夠大的字串來儲存檔案的內容。

例如,我們建立一個可以儲存最多 100 個字元的字串

示例

FILE *fptr;

// 以讀取模式開啟檔案
fptr = fopen("filename.txt", "r");

// 儲存檔案內容
char myString[100];

為了讀取 filename.txt 的內容,我們可以使用 fgets() 函式。

fgets() 函式需要三個引數

示例

fgets(myString, 100, fptr);
  1. 第一個引數指定在哪裡儲存檔案內容,它將儲存在我們剛剛建立的 myString 陣列中。
  2. 第二個引數指定要讀取的最大資料量,它應該與 myString 的大小(100)相匹配。
  3. 第三個引數需要一個檔案指標,用於讀取檔案(在我們的例子中是 fptr)。

現在,我們可以列印字串,這將輸出檔案的內容

示例

FILE *fptr;

// 以讀取模式開啟檔案
fptr = fopen("filename.txt", "r");

// 儲存檔案內容
char myString[100];

// 讀取內容並將其儲存在 myString 中
fgets(myString, 100, fptr);

// 列印檔案內容
printf("%s", myString);

// 關閉檔案
fclose(fptr);

Hello World!

執行示例 »

注意: fgets 函式只讀取檔案的第一行。如果您還記得,filename.txt 中有兩行文字。

要讀取檔案的每一行,您可以使用 while 迴圈

示例

FILE *fptr;

// 以讀取模式開啟檔案
fptr = fopen("filename.txt", "r");

// 儲存檔案內容
char myString[100];

// 讀取內容並列印
while(fgets(myString, 100, fptr)) {
  printf("%s", myString);
}

// 關閉檔案
fclose(fptr);

Hello World!
Hi everybody!

執行示例 »

良好實踐

如果您嘗試開啟一個不存在的檔案進行讀取,fopen() 函式將返回 NULL

提示: 作為良好的實踐,我們可以使用 if 語句來檢查 NULL,並在檔案不存在時列印一些文字。

示例

FILE *fptr;

// 以讀取模式開啟檔案
fptr = fopen("loremipsum.txt", "r");

// 如果檔案不存在,則列印一些文字
if(fptr == NULL) {
  printf("無法開啟檔案。");
}

// 關閉檔案
fclose(fptr);

如果檔案不存在,將列印以下文字

無法開啟檔案。

執行示例 »

考慮到這一點,如果我們再次使用上面的“讀取檔案”示例,我們可以建立一個更具可持續性的程式碼。

示例

如果檔案存在,則讀取內容並列印。如果檔案不存在,則列印一條訊息。

FILE *fptr;

// 以讀取模式開啟檔案
fptr = fopen("filename.txt", "r");

// 儲存檔案內容
char myString[100];

// 如果檔案存在
if(fptr != NULL) {

  // 讀取內容並列印
  while(fgets(myString, 100, fptr)) {
    printf("%s", myString);
  }

// 如果檔案不存在
} else {
  printf("無法開啟檔案。");
}

// 關閉檔案
fclose(fptr);

Hello World!
Hi everybody!

執行示例 »


×

聯絡銷售

如果您想將 W3Schools 服務用於教育機構、團隊或企業,請傳送電子郵件給我們
sales@w3schools.com

報告錯誤

如果您想報告錯誤,或想提出建議,請傳送電子郵件給我們
help@w3schools.com

W3Schools 經過最佳化,旨在方便學習和培訓。示例可能經過簡化,以提高閱讀和學習體驗。教程、參考資料和示例會不斷審查,以避免錯誤,但我們無法保證所有內容的完全正確性。使用 W3Schools 即表示您已閱讀並接受我們的使用條款Cookie 和隱私政策

版權所有 1999-2024 Refsnes Data。保留所有權利。W3Schools 由 W3.CSS 提供支援