某些时候由于datatype 重载了 <<, 因此cout能支持多种数据的输出。这时用fprintf用不上力。而我们有需要将输出重定向到文件,因此给出了如下解决方案。 //打开输出文件 ofstream outf("out.txt"); //获取cout默认输出 streambuf *default_buf=cout.rdbuf(); //重定向cout输出到文件 cout.rdbuf( outf.rdbuf() ); //输出到文件 cout<<"输出到文件"<<endl; //恢复cout默认输出 cout.rdbuf( default_buf ); //输出到默认输出:屏幕 cout<<"输出到默认输出:屏幕"<<endl;