c++ - 如何使用递归在 .txt 中写入多行?

标签 c++ recursion ofstream

我是一名编程专业的学生,​​工程师告诉我们使用递归编写算法来解决数学问题“汉诺塔”。完成后,我可以在控制台上打印说明,但我需要将说明写在 .txt 文件上。我设法创建了文件并在上面写了第一行文本,但其余部分并没有真正出现。我真的需要这些人的帮助。

using namespace std;

void torresdehanoi(int disco, int torre1, int torre2, int torre3){
    ofstream myFile;
    myFile.open("SolucionTorresDeHanoi.txt");
    if(disco==1){
        myFile<<"Mover disco de Torre "<<torre1<<" a la torre "<<torre3<<endl;
    }
    else{
        torresdehanoi(disco-1, torre1, torre3, torre2);
        myFile<<"Mover disco de Torre "<<torre1<<" a la torre "<<torre3<<endl;
        torresdehanoi(disco-1, torre2, torre1, torre3);
    }
}

int main()
{
    int disco=0, torre1=1, torre2=2, torre3=3;

    cout<<"Con cuanteas piezas desea calcular el algoritmo?"<<endl;
    cin>>disco;
    torresdehanoi(disco, torre1, torre2, torre3);

    return 0;
}

最佳答案

从 main 打开 fstream 对象使事情变得简单:

void torresdehanoi(int disco, int torre1, int torre2, int torre3, ofstream& myFile) {

    if (disco == 1) {
        myFile << "Mover disco de Torre " << torre1 << " a la torre " << torre3 << endl;
    }
    else {
        torresdehanoi(disco - 1, torre1, torre3, torre2, myFile);
        myFile << "Mover disco de Torre " << torre1 << " a la torre " << torre3 << endl;
        torresdehanoi(disco - 1, torre2, torre1, torre3, myFile);
    }
}

int main()
{
    ofstream myFile;

    int disco = 0, torre1 = 1, torre2 = 2, torre3 = 3;

    cout << "Con cuanteas piezas desea calcular el algoritmo?" << endl;
    cin >> disco;

    myFile.open("SolucionTorresDeHanoi.txt");
    if (myFile.is_open()) {
        torresdehanoi(disco, torre1, torre2, torre3, myFile);
        myFile.close();
    }
    return 0;
}

关于c++ - 如何使用递归在 .txt 中写入多行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57533685/

相关文章:

c++ - 以二进制模式从文件中读取 block 到缓冲区并将该缓冲区写入另一个文件

java - 属性值的组合

python - 平铺,在这种情况下如何使用递归?

Javascript 递归检查

C++ 异常:内存位置 0x003DF4C0 处的 std::out_of_range

c++ - 用c++写入文本文件的开头

c++ - 双倍乘法四舍五入,我不知道如何解决

c++ - 在 C++ 中从彩色图像创建蒙版(叠加彩色图像蒙版)

c++ - 2个unique_ptr的 map

c++ - 释放分配给空指针数组的内存