21xrx.com
2024-09-17 04:18:02 Tuesday
登录
文章检索 我的文章 写文章
C语言重定向输出
2023-06-15 19:48:56 深夜i     --     --
C语言 重定向输出 freopen函数 stdout 标准输出

C语言中有一些输出函数,比如printf、fwrite等,它们默认将输出结果打印到屏幕上。如果需要将这些输出结果保存到文件中,可以使用C语言的重定向输出功能。

重定向输出的原理非常简单,就是将输出的内容从标准输出(stdout)切换到一个文件句柄,这样所有的输出结果都会保存到文件中,而不是显示在屏幕上。可以使用freopen函数来实现重定向输出,示例代码如下:


#include

int main()

{

  FILE *fp = fopen("output.txt", "w");

  freopen("output.txt", "w", stdout);

  printf("redirect stdout\n");

  fprintf(fp, "write to file\n");

  fclose(fp);

  return 0;

}

以上代码会将输出结果保存到output.txt文件中,并且在屏幕上不会直接显示。

当需要输出到屏幕上时,只需要将stdout重新定向回标准输出即可,示例代码如下:


#include

int main()

{

  freopen("output.txt", "w", stdout);

  printf("redirect stdout\n");

  fprintf(stdout, "write to stdout\n");

  freopen("/dev/tty", "w", stdout); // 将stdout重新定向回标准输出

  printf("output to screen\n");

  return 0;

}

以上代码通过将stdout重定向为/dev/tty,将输出结果重新发送到标准输出,最终在屏幕上输出结果。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复