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"); }