Dev - C++ - problema con row bucle c

 
Vista:

problema con row bucle c

Publicado por yoelmend (1 intervención) el 07/06/2017 03:29:21
hola a todos hoy tengo una duda que me tiene bastante inquieto desde hace rato

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
int main()
{
 
con=mysql_init(NULL);
if (!mysql_real_connect(con, HOST, USER, PASS, DB,3306,NULL,0)){
fprintf(stderr, "%s\n", mysql_error(con));
return 1;
}
 
fprintf(stdout, "****** Conexion EXITOSA con %s ******\n ",DB);
 
    rfidsc();
    return 0;
}
 
  void rfidsc()
{
        char consulta1[1024];
        char pin[45];
        int var = 0;
        while (var<1){
 
        scanf("%s",pin);
 
        sprintf(consulta1,"select nombre,apellido from Usuario where pin = '%s'",pin);
        mysql_query(con,consulta1); //Establecemos la conexion y enviamos la consulta a MySQL. q tiene almacenada nuestra consulta.
        res = mysql_use_result(con);
        row = mysql_fetch_row(res);
        int num = mysql_num_rows(res);
 
        if (num==1)
{
 
            fprintf(stdout,"------Bienvenido: \n");
 
 
       }
           else
              {
 
            fprintf(stdout, "usuario no existe\n");
 
       }
 
        }
}


ese codigo corre bien siempre y cuando el usuario sea incorrecto si el usuario es correcto entra en el bucle de forma normal pero la proxima vez que se repite el ciclo da el mensaje "Violación de segmento (`core' generado)", sea el usuario correcto o incorrecto, alguna idea?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 661
Bronce
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

problema con row bucle c

Publicado por agustin (522 intervenciones) el 07/06/2017 11:24:06
Aqui:
1
2
int var = 0;
while (var<1){
Entras en un bucle infinito porque no modificas más el valor de var.
Yo aquí:
1
2
3
4
if (num==1)
{
 
fprintf(stdout,"------Bienvenido: \n");
Modificaría ese valor.
1
2
3
4
if (num==1)
{
var++;
fprintf(stdout,"------Bienvenido: \n");
Por otro lado ¿cuando cierras la conexión con la base de datos? Debes hacerlo al terminar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar