2

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

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

这是代码:

#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()){

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

    }
 }

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

提前致谢

4

1 回答 1

4

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

这里可能发生的是写入正在发生,程序继续并挂在函数内。如果您不想编写 endl (执行写入),您可以cout.flush()稍后调用。

于 2012-05-10T23:07:22.293 回答