Error al comparar cadenas

Iniciado por amchacon, 26 Enero 2013, 11:19 AM

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

amchacon

Necesito comprobar si un determinado archivo es un rar, lo que hago es comprobar si tiene la firma que tiene todo archivo Rar: "Rar!"

Código (cpp) [Seleccionar]
bool Rar_File_Mising::ComprobarFormato()
{
   if (!Lectura.is_open())
        throw Excepcion("No hay ningun fichero abierto",ARCHIVO_NO_ABIERTO);

   char* Leer = new char[4];

   Lectura.read(Leer,4);
  // cout<<"Cosa:"<<Leer[0]<<Leer[1]<<Leer[2]<<Leer[3];

   if (strcmp(Leer,"Rar!") == 0)
   {
       delete[] Leer;

       return true;
   }
   else
   {
       delete[] Leer;

       return false;
   }
}


El problema esque cuando abro un archivo real. Siempre me lo detecta como falso, es como si no quisiera leer >_>
Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar

amchacon

Solucionado, solo tenía que añadirle el caracter '\0' a la cadena para que stcmpr funcionase correctamente ^^
Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar