求救:递归中屏幕输出和文件输出的问题。
例:
#include <iostream>
#include <fstream>
using namespace std;
void f( int n, int x, int y, int z )
{
ofstream out( "test.txt" );
if( n == 1 )
{
cout << x << " to " << z << endl;
out << x << " to " << z << endl;
}
else
{
f( n-1, x, z, y );//把N-1个通过z先移到Y上
f( 1, x, y, z ); //把剩下的一个移到Z上
f( n-1, y, x, z);//把Y上的N-1个移到Z上
}
}
int main( )
{
f( 3, 1, 2, 3 );
}
上面是个汉诺塔的输出,输出到屏幕的时候,可以把每一步都打出来。可是输出到文件中的时候,最后打开文件为什么只有最后一步?
求解答。