2013-04-23 110 views
3

說我有下面的程序,簡單地輸出的「Hello World」:如何將程序的輸出顯示到文件和控制檯(stdout)?

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

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

現在我想以顯示它既能在屏幕和文件output.txt。所以我在命令提示符下輸入以下命令(我使用Windows XP中的代碼塊,並已將其配置爲在命令提示符工作以及):

demo.exe>>output.txt>>stdout

它不工作!請告訴我怎麼做,即如何輸出與我在屏幕上看到的相同的東西(當我運行程序時),同時輸出到文本文件?

+0

你可以在程序本身做對吧?不同的控制檯命令可能會不同 – 2013-04-23 09:50:57

回答

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; 
} 
3

您需要爲Windows下載一個tee命令。 tee是將標準輸入複製到標準輸出並輸出到文件的UNIX/Linux命令。然後,您可以這樣做:

demo.exe | tee output.txt 

Here is one port of tee for Windows。

+0

或者使用更好的環境,如cygwin當然,已經有發球和所有常見的* nix好吃的東西... – 2013-04-23 09:43:33

+0

@suspectus在標準C中沒有辦法做到這一點?我們沒有要求太多這裏我們只希望我們在屏幕上看到的輸出也保存到一個文件中。 – 2013-04-23 09:43:52

+1

你可以在你的C程序中做到這一點,但這是「錯誤」的方式 - 這種事情應該在命令行中處理,而不是在代碼中處理。 – 2013-04-23 09:44:52

相關問題