鱼C论坛

 找回密码
 立即注册
查看: 2733|回复: 3

[知识点备忘] S1E58:读写文件2

[复制链接]
发表于 2017-8-28 20:42:23 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
待更新
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-9-14 09:31:14 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 7 天前 | 显示全部楼层
@FishC 请制作[知识点备忘] S1E58:顺序读写文件,讲一下C语言函数fscanf和fprintf、fread和fwrite。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 7 天前 | 显示全部楼层
检测点11.1 发表于 2024-05-02 07:14
@FishC 请制作 S1E58:顺序读写文件,讲一下C语言函数 ...


好的,让我们来制作一个关于顺序读写文件以及相关C语言函数的知识点备忘。

首先,我们需要了解两对函数,一对是用于格式化读写文件的函数fscanf和fprintf,另一对是用于二进制读写文件的函数fread和fwrite。

1. fscanf和fprintf:
   - fscanf函数可以从文件中按照指定的格式读取数据,并将读取的数据保存到变量中。
   - fprintf函数可以按照指定的格式将数据写入文件。
   
下面是一个使用fscanf和fprintf函数的例子:

  1. #include <stdio.h>

  2. int main() {
  3.     FILE *fp;
  4.     int num1, num2;
  5.    
  6.     // 打开文件以供读取
  7.     fp = fopen("data.txt", "r");
  8.     if (fp == NULL) {
  9.         printf("无法打开文件!\n");
  10.         return 1;
  11.     }
  12.    
  13.     // 从文件中读取两个整数
  14.     fscanf(fp, "%d %d", &num1, &num2);
  15.    
  16.     // 关闭文件
  17.     fclose(fp);
  18.    
  19.     // 将两个整数写入文件
  20.     fp = fopen("output.txt", "w");
  21.     if (fp == NULL) {
  22.         printf("无法创建文件!\n");
  23.         return 1;
  24.     }
  25.    
  26.     fprintf(fp, "num1: %d, num2: %d", num1, num2);
  27.    
  28.     // 关闭文件
  29.     fclose(fp);
  30.    
  31.     return 0;
  32. }
复制代码


这个例子中,首先我们打开了一个名为"data.txt"的文件,用于读取两个整数。然后我们使用fscanf函数,将文件中的两个整数读取到num1和num2变量中。接着,我们关闭了文件。

接下来,我们打开了一个名为"output.txt"的文件,用于写入数据。然后,我们使用fprintf函数,将num1和num2的值按照指定的格式写入文件。最后,我们关闭了文件。

2. fread和fwrite:
   - fread函数可以从文件中读取二进制数据,并将其存储到指定的内存块中。
   - fwrite函数可以将指定内存块中的二进制数据写入文件。
   
下面是一个使用fread和fwrite函数的例子:

  1. #include <stdio.h>

  2. int main() {
  3.     FILE *fp;
  4.     int data[] = {10, 20, 30, 40, 50};
  5.     int size = sizeof(data) / sizeof(data[0]);

  6.     // 写入二进制数据到文件
  7.     fp = fopen("binary.bin", "wb");
  8.     if (fp == NULL) {
  9.         printf("无法创建文件!\n");
  10.         return 1;
  11.     }
  12.    
  13.     fwrite(data, sizeof(int), size, fp);
  14.    
  15.     // 关闭文件
  16.     fclose(fp);
  17.    
  18.     // 从文件中读取二进制数据
  19.     int readData[size];
  20.    
  21.     fp = fopen("binary.bin", "rb");
  22.     if (fp == NULL) {
  23.         printf("无法打开文件!\n");
  24.         return 1;
  25.     }
  26.    
  27.     fread(readData, sizeof(int), size, fp);
  28.    
  29.     // 关闭文件
  30.     fclose(fp);
  31.    
  32.     // 打印读取的数据
  33.     for (int i = 0; i < size; i++) {
  34.         printf("%d ", readData[i]);
  35.     }
  36.    
  37.     return 0;
  38. }
复制代码


这个例子中,我们首先创建了一个整数数组data,其中包含5个整数。然后,我们使用fwrite函数将这些整数以二进制形式写入到一个名为"binary.bin"的文件中。

接下来,我们定义了一个同样大小的数组readData,用于存储从文件中读取出来的数据。然后,我们使用fread函数从文件中读取二进制数据,将其存储到readData数组中。

最后,我们打印出读取的数据,以验证读取是否成功。

希望以上解答对你有所帮助!请记得多实践,加油!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-9 09:10

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表