fread和fgets和fgetc和fwrite和fputs的区别

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主要用于写入字符串

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
引用:fgets()用法为: char *fgets ( char *str, int n, FILE *fp );。fgets()函数用于从文件中读取字符串,并将其存储在指定的字符数组中。它会读取指定文件中的一行,包括换行符,并将读取的内容存储在参数str指向的字符数组中,最多读取n-1个字符。如果文件结束或读取错误,fgets()函数返回NULL。 引用:如果我们要读取 D:\\demo.txt 那该怎么使用fgets()函数呢? 首先,我们需要包含<stdio.h>和<stdlib.h>头文件。然后,我们可以按照以下步骤使用fgets()函数来读取文件: 1. 定义一个文件指针变量fp和一个字符数组str,用于存储读取的字符串。 2. 使用fopen()函数打开文件,如果打开失败,则输出错误信息并退出程序。 3. 使用while循环和fgets()函数来读取文件中的每一行,直到文件结束。在循环中,使用printf()函数打印读取的字符串。 4. 使用fclose()函数关闭文件。 最后,返回0表示程序执行成功。 引用:fgetc()函数用于从文件中读取单个字符。它的用法为int fgetc(FILE *fp),其中fp是一个指向文件的指针。该函数会从文件中读取下一个字符,并返回其ASCII码。如果到达文件末尾或者发生错误,fgetc()函数将返回EOF。 总结: - fgets()函数用于从文件中读取字符串,将其存储在字符数组中。 - fgetc()函数用于从文件中读取单个字符,并返回其ASCII码。 - 使用fgets()函数时,需要指定文件路径和文件指针,以及一个字符数组来存储读取的字符串。 - 使用fgetc()函数时,需要指定文件指针,该函数会逐个读取字符,直到文件结束或发生错误。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [C语言中fgetc()、fgets()之间的区别](https://blog.csdn.net/wyf2017/article/details/105641281)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [文件的顺序读写和随机读写,fgetc、fgets、fputc、fputs、fscanf、fprintf、freadfwrite等等函数的介绍](https://blog.csdn.net/zxf123567/article/details/125931492)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值