gpt4 book ai didi

C++ - 程序在函数调用中丢失

转载 作者:搜寻专家 更新时间:2023-10-31 01:15:03 30 4
gpt4 key购买 nike

这里我有一段代码,它是名为 Sistema 的类的一部分(所有声明都在一个单独的文件中)。第一个函数应该调用下一个函数,这是一个读取某些树的递归函数(Arbretree 的自定义实现)。

在运行程序时,输出显示“entering function”行,就在函数调用之前,但我从未得到“new node”行。所以我的程序在函数调用和函数本身之间的某个地方迷路了,甚至在任何递归调用之前。我以前从来没有遇到过这样的问题。关于发生了什么的任何线索?

代码如下:

#include "Sistema.hpp"

............

list<int> Sistema::proc_peticion(int pelicula, int tiempo, int tamano){
list<int> srv;
Arbre<int> arb = estructura;
bool unidad_tmp = false;
int dist = 0, bw = 0;
cout << "entering function" << endl;
camino(srv, arb, pelicula, tiempo, tamano, unidad_tmp, dist, bw);
return srv;
}

............

void Sistema::camino(list<int>& srv, Arbre<int>& arb, const int& pel, const int& tmp, const int& size, bool& unidad_tmp, int& dist, int& bw){
cout << "new node ";
if (not arb.es_buit()){

..................

}
}

我试图只留下可能有用的代码部分,以使其更具可读性。如果您需要更多信息,请告诉我。

提前致谢

最佳答案

你应该在 camino 函数中写一个 endl,当你在 C/C++ 中写入文件时,数据不一定写入文件,而是位于内存缓冲区中,直到它被填满或被显式写入(刷新) ) 到磁盘。

这里可能发生的是写入正在进行,程序继续并在函数内挂起。如果你不想写一个 endl(它执行写),你可以在之后调用 cout.flush()

关于C++ - 程序在函数调用中丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10543315/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com