elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Error en programa c++
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Error en programa c++  (Leído 3,311 veces)
z_ane_666

Desconectado Desconectado

Mensajes: 64


Ver Perfil
Error en programa c++
« en: 9 Diciembre 2010, 00:12 am »


Antes que nada , buenos dias

Me baje este codigo(hecho para turbo c++ 3.00), lo compile en dicho programa y funciona bien , pero cuando lo pase a codeblocks(usa gnu gcc compiler),compilo bien, pero al ejecutar y poner un caracter de busqueda(El programa es para buscar caracteres en un archivo) la aplicacion falla y sale la ventana de que ha encontrado un problema y debe cerrarse

¿Que estaré haciendo mal? ¿Que hay que cambiar? Espero que puedan ayudarme

Codigo

Código:
#include <stdio.h>
#include <stdlib.h>
#include <io.h>
#include <fcntl.h>
#include <process.h>
#include <sys\stat.h>
#include <string.h>

int buscar ( char *archivo, char *cadena );
int encontrar_ocurrencias( char *cadena, char *subcadena );

int main(void)
{
    char *archivo = "C:\\readme.TXT";
    char *cadena;

    printf("Ingrese cadena a buscar: ");
    gets(cadena);

    int resul = buscar(archivo, cadena);

    if(resul==0)
      printf("No se ha encontrado la cadena\n");
    else
      printf("Coincidencias encontradas: %d\n", resul);

    system("PAUSE");
    return 0;
}

int buscar ( char *archivo, char *cadena )
{
   char ch;
   char *texto;
   int controlador, i;

   /* Abre archivo */
   if ((controlador = open(archivo, O_RDONLY | O_BINARY, S_IWRITE |

S_IREAD)) == -1)
   {
      printf("Error al abrir archivo\n");
      exit(1);
   }

   /* Lee el archivo y va colocando el contenido en la variable: texto */
   texto[0] = '\0';
   for(i=0; !eof(controlador); i++)
   {
      read(controlador, &ch, 1);
      texto[i] = ch;
   }
   texto[i]='\0';

   /* Cierra archivo */
   close (controlador);

   return encontrar_ocurrencias(texto, cadena);
}

int encontrar_ocurrencias( char *cadena, char *subcadena )
{
   char *tmp = cadena;
   char *pdest;
   int ocur = 0, pos;
   int len = strlen(subcadena);
   while(1)
   {
      pdest = strstr( tmp, subcadena );
      if( !pdest ) break;
      pos = pdest - tmp;
      tmp += pos + len;
      ocur++;
   }
   return ocur;
}


En línea

winroot


Desconectado Desconectado

Mensajes: 589

#include<winroot.h>


Ver Perfil WWW
Re: Error en programa c++
« Respuesta #1 en: 9 Diciembre 2010, 15:50 pm »

Buenas!
Bien, aunque no programo en c...
trata de cambiar los char* por char[tan]
Cuando haces:
Código:
texto[0]='\0';
/...el for
A mi me tira tmb error, y me imagino que es porque char* es un puntero a cadena constante.
Espero que te sirva de algo ^^.
Abrazo
Edit:
Porqué el título dice c++?
Y esto?
Código
  1.      tmp += pos + len;
  2.  
No, no es la clase string, no puedes usar +cadena me parece...
Hay funciones en string.h para ese tipo de cosas, no tengo idea si será strncat, pero bueno ^^.
Para copiar de una cadena a la otra usa strncpy.
Un saludo


« Última modificación: 9 Diciembre 2010, 15:57 pm por winroot » En línea

Mi blog sobre programación y seguridad informática:
http://win-root.blogspot.com
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Error en programa
.NET (C#, VB.NET, ASP)
zhynar_X 4 3,544 Último mensaje 8 Mayo 2007, 15:35 pm
por zhynar_X
error de programa
Windows
hardyan2 3 6,992 Último mensaje 2 Agosto 2010, 08:48 am
por NSaneBMX
Un programa me da un error
Dudas Generales
Mikroscopik0 4 2,921 Último mensaje 29 Septiembre 2010, 09:08 am
por Mikroscopik0
Error en programa
Programación C/C++
apoeti 6 2,510 Último mensaje 7 Septiembre 2012, 18:29 pm
por apoeti
Programa error « 1 2 »
Programación C/C++
elkiy 11 6,914 Último mensaje 19 Febrero 2013, 18:59 pm
por elkiy
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines