You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何无需反复打开文件,捕获matrix_output函数的全部输出至file.txt?

优化矩阵输出函数,减少重复文件操作

你完全可以通过只打开一次文件解决反复IO的问题,频繁打开关闭文件不仅效率低下,还可能引发不必要的异常。下面是修改后的代码:

/* main.c */
#include <stdio.h>
#include <stdlib.h>

void matrix_output();

void matrix_output() {
  FILE *fp = fopen("file.txt", "w"); // 仅打开一次文件,"w"模式自动清空原有内容并准备写入
  if (fp == NULL) { // 增加文件打开失败的判断,避免程序崩溃
    perror("Failed to open file");
    return;
  }

  for (int i = 0; i < 3; i++) {
    for (int j = 0; j < 3; j++) {
      fprintf(fp, "%d\t", i+j); // 直接复用已打开的文件指针写入内容
    }
    fprintf(fp, "\n"); // 每行结束后写入换行符
  }

  fclose(fp); // 所有写入操作完成后统一关闭文件
}

int main() {
  matrix_output();

  return 0;
}

核心修改说明:

  • 把文件的fopen和fclose移到循环外部,全程复用同一个文件指针,彻底消除反复打开关闭的冗余操作
  • 使用"w"模式打开文件,一次性完成清空原有内容+准备写入的操作,无需额外单独清空文件
  • 增加文件打开失败的错误处理,让代码更健壮(可选但推荐)
  • 修改后输出内容完全符合你的要求:
    0   1   2   
    1   2   3   
    2   3   4   
    

内容的提问来源于stack exchange,提问作者ecjb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 15:20:24