24小时热门版块排行榜    

查看: 1055  |  回复: 4

haopaper

金虫 (正式写手)

[求助] 求助关于C++语言中递归函数的输出问题已有1人参与

问题是这样的,我有一个用来计算分形结构的函数,这个函数是一个递归函数,然后我想把所有的结果都输出在一个TXT文件中,这个该如何实现呢?其实就是递归函数的结果要输出在一个TXT文件里面。
我在函数内部定义了一个输出流,但是每次运行后都只有最后一次递归的结果,之前的都被覆盖了。
void Canto(float ax, float ay, float bx, float by, int count)
{
        float l = 100.0;
        ofstream OutCome("Zuobiao.txt";
        if ((bx - ax) < l)
        {
                OutCome << ax << "  " << ay << "0" << endl;
                OutCome << bx << "  " << by << "0" << endl;
                OutCome.close();
        }
        else
        {               
                double cx, cy, dx, dy;
                cx = ax + (bx - ax) / 3.0;
                cy = ay + 10.0;
                dx = bx - (bx - ax) / 3.0;
                dy = by + 10.0;
                ay = ay + 10.0;
                by = by + 10.0;
                count++;
                Canto(ax, ay, cx, cy, count);
                Canto(dx, dy, bx, by, count);
        }
}
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ofwhy

至尊木虫 (著名写手)

数组?每次在末尾赋值?

发自小木虫Android客户端
2楼2023-04-08 20:24:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

haopaper

金虫 (正式写手)

引用回帖:
2楼: Originally posted by ofwhy at 2023-04-08 20:24:07
数组?每次在末尾赋值?

你好,我也想过把一个数组的地址作为递归函数的形参传进去,但是现在这个递归函数有分支,所以我就没想明白怎么利用数组。
能麻烦你解释详细一点吗?
3楼2023-04-08 20:57:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ZXj11111

铁虫 (初入文坛)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
haopaper: 金币+50, 有帮助 2024-01-04 20:49:19
你的问题在于每次调用`Canto`函数时,都会重新打开并覆盖原有的`Zuobiao.txt`文件。为了解决这个问题,你可以考虑将文件操作移出递归函数,并在每次递归结束后,关闭文件。这样就不会出现文件被覆盖的情况了。

修改后的代码如下:

```cpp
#include <fstream> // 包含ofstream类

void Canto(float ax, float ay, float bx, float by, int count) {
    float l = 100.0;
    std:fstream Outcome("Zuobiao.txt"; // 使用std命名空间,避免与系统库冲突
    if ((bx - ax) < l) {
        Outcome << ax << " " << ay << "0" << std::endl;
        Outcome << bx << " " << by << "0" << std::endl;
        Outcome.close();
    } else {
        double cx, cy, dx, dy;
        cx = ax + (bx - ax) / 3.0;
        cy = ay + 10.0;
        dx = bx - (bx - ax) / 3.0;
        dy = by + 10.0;
        ay = ay + 10.0;
        by = by + 10.0;
        count++;
        Canto(ax, ay, cx, cy, count);
        Canto(dx, dy, bx, by, count);
    }
}
```

在这个版本的代码中,我们使用了`std:fstream`来创建文件对象,并在每次递归结束后,手动关闭文件。这样就能确保每次递归都能向同一个文件中写入数据,而不是覆盖掉之前的数据。

发自小木虫Android客户端
4楼2024-01-03 00:16:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

haopaper

金虫 (正式写手)

引用回帖:
4楼: Originally posted by ZXj11111 at 2024-01-03 00:16:16
你的问题在于每次调用`Canto`函数时,都会重新打开并覆盖原有的`Zuobiao.txt`文件。为了解决这个问题,你可以考虑将文件操作移出递归函数,并在每次递归结束后,关闭文件。这样就不会出现文件被覆盖的情况了。
修改 ...

非常感谢,我试试
5楼2024-01-04 20:49:00
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 haopaper 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 九部门发文:不得将专利授权数量作为人才评价、项目评审、职称评定、高校评价等的条件 +16 sjtu2012 2024-05-28 19/950 2024-06-01 15:24 by 天外飞去来
[考博] 24or25材料专业申博 +4 农夫三拳有点痛 2024-05-30 11/550 2024-06-01 14:45 by Napoleonsky
[基金申请] 数理的人才答辩通知发了吗 +7 yzy3327 2024-05-30 7/350 2024-06-01 09:15 by 撒哈拉西部
[教师之家] 选择 +6 459582015 2024-05-31 6/300 2024-06-01 07:32 by otani
[基金申请] 讨论贴:好本子一定会被打招呼的淘汰吗 +36 ioe3937 2024-05-27 46/2300 2024-05-31 22:06 by wanghuawei
[考博] 申请2024或2025年博士研究生 +5 嘟噜嘟1 2024-05-29 11/550 2024-05-31 19:27 by 嘟噜嘟1
[找工作] 找工作如此之难 +7 探123 2024-05-25 7/350 2024-05-31 15:58 by 平南小刀
[高分子] MMA预聚体光固化发雾问题求助 +3 惠亚金总 2024-05-29 10/500 2024-05-31 14:59 by 惠亚金总
[教师之家] 研究生在毕业答辩时挂了,遗憾 +9 spacr2022 2024-05-27 12/600 2024-05-31 10:17 by zzq770204
[基金申请] 入职高校3年发表10+SCI,尽人事听天命 +29 kaoyan250 2024-05-27 40/2000 2024-05-31 08:44 by Xiaolin81
[电化学] 有锂金属软包电池代工公司代做软包嘛 +5 yyywj995 2024-05-26 6/300 2024-05-30 08:33 by 那年的旧城
[有机交流] 液相纯度高,但产品析不太出来 10+4 cui19236 2024-05-27 9/450 2024-05-30 07:45 by yuanjijoy
[硕博家园] 论大家对6070后普通教授导师的看法 +5 SNaiL1995 2024-05-28 9/450 2024-05-29 21:54 by SNaiL1995
[考博] 24年博士招生 +7 abinit432 2024-05-27 9/450 2024-05-29 17:16 by 中国银河
[基金申请] 信息学部函评结束了吗? +6 ducan21 2024-05-28 7/350 2024-05-29 12:10 by WORLD0256
[论文投稿] 核心初审被拒,理由是“选题的意义不明确,文章写得不像是科技论文”,怎么改 5+3 工藤雷花樱 2024-05-27 8/400 2024-05-29 10:09 by topedit
[论文投稿] EI学报,一审返修后,为啥不再送审,直接终审中? +4 qweasd12345 2024-05-27 6/300 2024-05-29 00:02 by dut_ameng
[基金申请] E05青基有几个评审 +4 KYXY123 2024-05-28 4/200 2024-05-28 19:25 by popt2t
[基金申请] E10开始送了,希望有好运 +5 sail 2024-05-27 5/250 2024-05-28 18:36 by 芝小芝
[硕博家园] 课题做到一半担心做不出来怎么办 +4 mkpooooo 2024-05-27 7/350 2024-05-27 11:56 by kanmiaolucky
信息提示
请填处理意见