1. fread 函数:
- fread 函数用于从文件中读取二进制数据。
- 它的原型为 size_t fread(void *ptr, size_t size, size_t count, FILE *stream)。
- ptr 是一个指向要读取数据存储位置的指针。
- size 是每个数据项的大小(以字节为单位)。
- count 是要读取的数据项的数量。
- stream 是一个指向要读取的文件的指针。
- fread 函数返回实际读取的数据项数量。
- 例如,fread(buffer, sizeof(int), 10, file) 将从文件中读取 10 个 int 类型的数据项到 buffer 中。
2. fgets 函数:
- fgets 函数用于从文件中读取文本行。
- 它的原型为 char *fgets(char *str, int n, FILE *stream)。
- str 是一个指向字符数组的指针,用于存储读取的文本行。
- n 是要读取的最大字符数(包括换行符和终止符)。
- stream 是一个指向要读取的文件的指针。
- fgets 函数返回一个指向 str 的指针,如果读取成功,则返回非空指针;如果到达文件末尾或发生错误,则返回空指针。
- 例如,fgets(buffer, 100, file) 将从文件中读取最多 99 个字符(包括换行符和终止符)到 buffer 中。
3. fgetc 函数:
- fgetc 函数用于从文件中读取一个字符。
- 它的原型为 int fgetc(FILE *stream)。
- stream 是一个指向要读取的文件的指针。
- fgetc 函数返回读取的字符的 ASCII 值,如果到达文件末尾或发生错误,则返回 EOF。
- 例如,int c = fgetc(file) 将从文件中读取一个字符并将其存储在变量 c 中。
fwrite和fputs都是C语言中的标准库函数,用于将数据写入文件,但它们的用途和功能有所不同:
1. fwrite:这是一个通用的输出函数,可以将任何类型的数据写入文件。它的原型如下:
size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream);
其中,ptr是指向要写入数据的指针,size是每个数据项的大小,nmemb是数据项的数量,stream是目标文件流。fwrite直接将内存中的数据写入文件,不进行任何转换。
2. fputs:这个函数专门用于将字符串写入文件。它的原型如下:
int fputs(const char *s, FILE *stream);
其中,s是要写入的字符串,stream是目标文件流。fputs会将字符串s写入文件,直到遇到空字符'\0'为止。
总结:
- fread 用于读取二进制数据,fgets 用于读取文本行,fgetc 用于读取单个字符。
- fread 和 fgets 都可以指定要读取的数据量,而 fgetc 只能读取一个字符。
- fread 和 fgets 返回实际读取的数据项数量或读取的文本行,而 fgetc 返回读取的字符的 ASCII 值。
- fgets 会读取换行符,并将其包含在结果中,而 fgetc 只会读取单个字符。
- fgets 会在读取到换行符或达到最大字符数时停止读取,而 fgetc 可以连续读取文件的每个字符。
-fwrite更为通用,可以用于写入任何类型的数据,而fputs主要用于写入字符串