stdin,stdout,stderr是常量,無法直接賦值?
FILE *fp;
stdin = fp
gcc x86編譯無警告,運行正常。
android gcc(ARM-48) 編譯報錯
error: lvalue required as left operand of assignment
stdin = fp;
^
解決方法如下:
如何將標準輸出到文件重定向從 Visual C/c + + 程序
本文介紹如何將重定向標準輸出到一個文件從 C 程序中,然後還原原始 stdout 稍後在同一個程序中。通常用於重定向標準輸出或標準輸入 C 函數是 freopen()。若要將標準輸出重定向到名爲文件的文件。TXT,使用以下調用:
freopen( "file.txt", "w", stdout );
若要返回到顯示 (默認 stdout) 標準輸出,請使用下面的調用:
freopen( "CON", "w", stdout );
下方是一個小的程序,以演示的標準輸出重定向:
示例代碼
// Compile options needed: none #include <stdio.h> #include <stdlib.h> void main(void) { FILE *stream ; if((stream = freopen("file.txt", "w", stdout)) == NULL) exit(-1); printf("this is stdout output\n"); stream = freopen("CON", "w", stdout); printf("And now back to the console once again\n"); }