2015-02-23 70 views
-2

我的程序有兩個參數執行(放在argv)象下面這樣:寫輸出在C特定文件

$ myProgram input output 

如何重定向所有printf(..)到輸出文件?我看到了一些關於使用fflush(stdout)的建議,但我之前沒有使用它。任何人都可以給我看一個例子嗎?

+2

您需要了解[C庫的輸入/輸出部分](http://en.cppreference.com/w/c/io),例如['fopen'](http:// en.cppreference.com/w/c/io/fopen),['fprintf'](http://en.cppreference.com/w/c/io/fprintf)和['fclose'](http:// en.cppreference.com/w/c/io/fclose)函數。 – 2015-02-23 09:41:26

+1

如果你想寫在一個文件中我建議你使用fwrite的fprint,如果你想重定向一個輸出谷歌PIPE – Engine 2015-02-23 09:41:29

+0

給我們一個小的代碼片段顯示你已經嘗試過。 – harald 2015-02-23 09:42:32

回答

0

如果您試圖重定向程序的輸出,那麼可以很容易地從命令行本身完成,無需向程序添加任何其他代碼。只需像這樣修改命令即可。

$ myProgram input output > example.txt 

而且,如果您想將輸出附加到輸出文件的末尾,那麼命令將如下所示。

$ myProgram input output >> output 

但是,在這兩種情況下,屏幕上都不會顯示任何內容。程序的整個輸出將被寫入文件中。

0

您必須對您fprintf()而不是printf

這裏是一個〔實施例

#include <stdio.h> 

main() 
{ 
    FILE *fp; 
    fp = fopen("/tmp/test.txt", "w+"); 
    fprintf(fp, "This is testing for fprintf...\n"); 
    fputs("This is testing for fputs...\n", fp); 
    fclose(fp); 
} 

有關詳細信息讀取This pagethis page 此代碼從第一個鏈接被採取。