Warnings en tratamiento de ficheros con C++ Builder XE

Iniciado por mario_tko, 15 Noviembre 2011, 12:26 PM

0 Miembros y 1 Visitante están viendo este tema.

mario_tko

Hola compañeros, a ver si me podeis ayudar en estas pequeñas dudas que tengo.

El problema: Crear un Arbol Trie que apunte a unas estructuras de datos (listas doblemente enlazadas). Se trata de un diccionario con acciones de Insertar pababra, Eliminar palabra, Buscar palabra y Decir si el "diccionario" esta vacio.

Por ahora tengo terminado la interfaz (ArbolTrie.h) y estoy con la implementacion, pero se me estan presentando muchas dudas. Nose si trabajar directamente sobre el fichero .txt o sobre el Arbol y me estoy haciendo un lio con los nodos y demas.

Por ahora he empezado a implementar la funcion EsVacio() que me dice si el arbol/fichero txt esta vacio (si no contiene ninguna palabra), no me da errores, pero me da algunos warnings en

Aqui esta el codigo:




//Implementacion de la clase ArbolTrie
//Clase ArbolTrie -- IMPLEMENTACION

#include <iostream.h>
#include <stdio.h>
#include <fstream.h>
#include <iomanip.h>

#include "ArbolTrie.h"

#ifndef __ARBOLTRIE_CPP__
#define __ARBOLTRIE_CPP__

using namespace std;

//Constructores
ArbolTrie::ArbolTrie()
{
T = NULL;
}

//Destructores
ArbolTrie::~ArbolTrie()
{
// No hay que hacer nada
}



//////////////IMPLEMENTACION DEL METODO CONSULTA/////////////////



int ArbolTrie::EsVacio()//Comprueba si tiene palabras
{
ifstream dic;
dic.open("diccionario.txt", ios::in);

char c;

if(!dic)
{
cerr << "ERROR EN LA APERTURA";
return 1;
}

dic >> c;

if(dic.eof())
{
cout << "FICHERO VACIO" << endl;
return 0;
}
else
{
return 1;
}
dic.close();   //////EL WARNING SALE AQUI

}///OTRO WARNING ME SALE AQUI

#endif



WARNINGS:


[BCC32 Warning] ArbolTrie.cpp(58): W8066 Unreachable code
  Full parser context
    ArbolTrie.cpp(35): parsing: int ArbolTrie::EsVacio()
[BCC32 Warning] ArbolTrie.cpp(59): W8070 Function should return a value
  Full parser context
    ArbolTrie.cpp(35): parsing: int ArbolTrie::EsVacio()



Alguien me puede ayudar?

do-while

¡Buenas!

Prueba con esto...
Código (cpp) [Seleccionar]


if(dic.eof())
{
dic.close(); //cerramos el fichero antes de volver.
cout << "FICHERO VACIO" << endl;
return 0;
}
//else: este else no hace falta. Ya sabemos que el fichero no ha llegado a su fin
{
//return 1; si pones aqui el return, nunca llegaras a cerrar el fichero
}
dic.close();   //////EL WARNING SALE AQU

return 1; //la funcion termina devolviendo un valor despues de cerrar el fichero


A ver si ahora no te suelta los warnings... sino, a bote pronto, no veo errores (que no quiere decir que no se me hayan podido pasar)...

¡Saludos!
- Doctor, confundo los números y los colores.
- Vaya marrón.
- ¿Marrón? ¡Por el culo te la hinco!