问题内容:在C和C++中把标准输出重定向到指定文件。
C++的实现
#include <ios>
#include <iostream>
#include <fstream>
//若使用包含.h文件方式则编译报错
using namespace std;
int main()
{
ofstream ofs("e:\\a.txt");
streambuf *osb = cout.rdbuf(ofs.rdbuf());
cout << "to file" << endl;
cout.rdbuf(osb);
cout << "to term" << endl;
return 0;
}
C实现1
#include <stdio.h>
#include <string.h>
void main()
{
FILE old_stdout;
FILE *fp = fopen("e:\\a.txt", "w");
memcpy(&old_stdout, &_iob[1], sizeof(FILE));
memcpy(&_iob[1], fp, sizeof(FILE));
/*call any functions..*/
printf("to file");
/**/
/*把缓冲刷新到文件*/
fflush(stdout);
memcpy(&_iob[1], &old_stdout, sizeof(FILE));
printf("to term");
fclose(fp);
}
C实现2::
#include<iostream>
#include<fstream>
using namespace std;
int main()
{
freopen("intput.txt","r",stdin);
freopen("output.txt","w",stdout);
double a;
cin>>a;
cout<<"Jackie"<<endl;
return 0;
}