| 
 | 
 
 
发表于 2024-5-2 07:15:12
|
显示全部楼层
 
 
 
 
 
好的,让我们来制作一个关于顺序读写文件以及相关C语言函数的知识点备忘。 
 
首先,我们需要了解两对函数,一对是用于格式化读写文件的函数fscanf和fprintf,另一对是用于二进制读写文件的函数fread和fwrite。 
 
1. fscanf和fprintf: 
   - fscanf函数可以从文件中按照指定的格式读取数据,并将读取的数据保存到变量中。 
   - fprintf函数可以按照指定的格式将数据写入文件。 
    
下面是一个使用fscanf和fprintf函数的例子: 
 
- #include <stdio.h>
 
  
- int main() {
 
 -     FILE *fp;
 
 -     int num1, num2;
 
 -     
 
 -     // 打开文件以供读取
 
 -     fp = fopen("data.txt", "r");
 
 -     if (fp == NULL) {
 
 -         printf("无法打开文件!\n");
 
 -         return 1;
 
 -     }
 
 -     
 
 -     // 从文件中读取两个整数
 
 -     fscanf(fp, "%d %d", &num1, &num2);
 
 -     
 
 -     // 关闭文件
 
 -     fclose(fp);
 
 -     
 
 -     // 将两个整数写入文件
 
 -     fp = fopen("output.txt", "w");
 
 -     if (fp == NULL) {
 
 -         printf("无法创建文件!\n");
 
 -         return 1;
 
 -     }
 
 -     
 
 -     fprintf(fp, "num1: %d, num2: %d", num1, num2);
 
 -     
 
 -     // 关闭文件
 
 -     fclose(fp);
 
 -     
 
 -     return 0;
 
 - }
 
  复制代码 
 
这个例子中,首先我们打开了一个名为"data.txt"的文件,用于读取两个整数。然后我们使用fscanf函数,将文件中的两个整数读取到num1和num2变量中。接着,我们关闭了文件。 
 
接下来,我们打开了一个名为"output.txt"的文件,用于写入数据。然后,我们使用fprintf函数,将num1和num2的值按照指定的格式写入文件。最后,我们关闭了文件。 
 
2. fread和fwrite: 
   - fread函数可以从文件中读取二进制数据,并将其存储到指定的内存块中。 
   - fwrite函数可以将指定内存块中的二进制数据写入文件。 
    
下面是一个使用fread和fwrite函数的例子: 
 
- #include <stdio.h>
 
  
- int main() {
 
 -     FILE *fp;
 
 -     int data[] = {10, 20, 30, 40, 50};
 
 -     int size = sizeof(data) / sizeof(data[0]);
 
  
-     // 写入二进制数据到文件
 
 -     fp = fopen("binary.bin", "wb");
 
 -     if (fp == NULL) {
 
 -         printf("无法创建文件!\n");
 
 -         return 1;
 
 -     }
 
 -     
 
 -     fwrite(data, sizeof(int), size, fp);
 
 -     
 
 -     // 关闭文件
 
 -     fclose(fp);
 
 -     
 
 -     // 从文件中读取二进制数据
 
 -     int readData[size];
 
 -     
 
 -     fp = fopen("binary.bin", "rb");
 
 -     if (fp == NULL) {
 
 -         printf("无法打开文件!\n");
 
 -         return 1;
 
 -     }
 
 -     
 
 -     fread(readData, sizeof(int), size, fp);
 
 -     
 
 -     // 关闭文件
 
 -     fclose(fp);
 
 -     
 
 -     // 打印读取的数据
 
 -     for (int i = 0; i < size; i++) {
 
 -         printf("%d ", readData[i]);
 
 -     }
 
 -     
 
 -     return 0;
 
 - }
 
  复制代码 
 
这个例子中,我们首先创建了一个整数数组data,其中包含5个整数。然后,我们使用fwrite函数将这些整数以二进制形式写入到一个名为"binary.bin"的文件中。 
 
接下来,我们定义了一个同样大小的数组readData,用于存储从文件中读取出来的数据。然后,我们使用fread函数从文件中读取二进制数据,将其存储到readData数组中。 
 
最后,我们打印出读取的数据,以验证读取是否成功。 
 
希望以上解答对你有所帮助!请记得多实践,加油! 
 
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |   
 
 
 
 |