1、簡述
要讀取文本文件,需要按照以下步驟操作:
- 首先,使用該函數打開文本文件
fopen()
。 - 其次,使用
fgets()
或fgetc()
函數從文件中讀取文本。 - 第三,使用函數關閉文件
fclose()
。
2、每次從文件中讀取一個字符
要從文本文件中一次讀取一個字符,可以使用 fgetc() 函數。
以下程序每次從 readme.txt 文件中讀取一個字符,并將文件內容顯示到輸出中:
#include <stdio.h>int main()
{char *filename = "readme.txt";FILE *fp = fopen(filename, "r");if (fp == NULL){printf("Error: could not open file %s", filename);return 1;}// read one character at a time and// display it to the outputchar ch;while ((ch = fgetc(fp)) != EOF)putchar(ch);// close the filefclose(fp);return 0;
}
3、逐行讀取文本文件
????????要從文本文件中讀取一行,可以使用 fgets() 函數:
char * fgets ( char *str, int num, FILE *stream );
? ??fgets()
函數從stream
讀取字符并將其存儲到中str
。
? ? 如果出現以下情況,該fgets()
函數將停止讀取:
- 已讀取 num-1 個字符
- 已到達換行符或文件結束字符。
????????請注意,該fgets()
函數還包括換行符str
。
????????下面的示例顯示如何使用 fgets() 函數逐行讀取文本文件并將文本顯示到輸出:
#include <stdio.h>int main()
{char *filename = "readme.txt";FILE *fp = fopen(filename, "r");if (fp == NULL){printf("Error: could not open file %s", filename);return 1;}// reading line by line, max 256 bytesconst unsigned MAX_LENGTH = 256;char buffer[MAX_LENGTH];while (fgets(buffer, MAX_LENGTH, fp))printf("%s", buffer);// close the filefclose(fp);return 0;
}