如何将程序的输出显示到文件和控制台(stdout)?

时间:2013-04-23 09:33:18

标签: c io-redirection

假设我有以下程序只输出“Hello World”:

//DEMO.c
#include<stdio.h>

int main()
{
printf("HELLO World");
}

现在我想将它显示在屏幕和文件output.txt上。所以我在命令提示符下输入以下命令(我在Windows XP上使用CodeBlocks并将其配置为在命令提示符下工作孔):

demo.exe>>output.txt>>stdout

它不起作用!!!请告诉我怎么做,即如何输出我在屏幕上看到的同样的东西(当我运行程序时),同时输出到文本文件?

2 个答案:

答案 0 :(得分:3)

您需要为Windows下载tee命令。 tee是一个UNIX / Linux命令,它将标准输入复制到标准输出并输出到文件。然后,你可以这样做:

demo.exe | tee output.txt
Windows的

Here is one port of tee

答案 1 :(得分:1)

#include <stdio.h>

#define my_fprintf(fp,...)  do{fprintf(fp, __VA_ARGS__);fprintf(stdout, __VA_ARGS__);}while(0)

int main(int argc, char **argv){
    FILE *fp;

    fp=fopen("output.txt","w");//or filename from argv[1]

    my_fprintf(fp, "hello world by %s\n", argv[0]);

    fclose(fp);

    return 0;
 }