Foros del Web » Programación para mayores de 30 ;) » C/C++ »

[SOLUCIONADO] Error inexplicable

Estas en el tema de Error inexplicable en el foro de C/C++ en Foros del Web. Hola a todos. Ante todo quiero dejar claro que este error se muestra al utilizar el Dev-C++. Al usar otro compilador, se ejecuta perfectamente, y ...
  #1 (permalink)  
Antiguo 02/06/2013, 06:05
Musiker
Invitado
 
Mensajes: n/a
Puntos:
Error inexplicable

Hola a todos.

Ante todo quiero dejar claro que este error se muestra al utilizar el Dev-C++. Al usar otro compilador, se ejecuta perfectamente, y quisiera saber por qué.
Cuando se ejecuta este simple código, sale una ventana de error que dice: "el programa ha detectado un error y debe cerrarse", y ya no sigue ejecutándose. El código se ejecuta correctamente hasta el punto en el que pide el primer número, a partir de ahí ya no sigue. ¿Alguien sabe el motivo?

Muchas gracias por adelantado.

Código C:
Ver original
  1. //Practicar con ficheros
  2.  
  3. #include <stdio.h>
  4. #include <conio.h>
  5. #include <stdlib.h>
  6.  
  7. int main (void)
  8. {
  9.  
  10.     //Declarar el puntero con fichero
  11.     FILE *fichero;
  12.     int a=0, b=0, suma=0;
  13.  
  14.     //Abrir el fichero.
  15.     fichero = fopen("C:\fich.dat","w");
  16.  
  17.    //Escribir datos en el fichero
  18.     do
  19.     {
  20.  
  21.         printf ("\n\n\nIntroduzca primer numero: ");
  22.        
  23.         scanf  ("%d",&a);
  24.        
  25.         fprintf (fichero, "\nIntroduzca primer numero: %d", a);
  26.        
  27.         printf ("\nIntroduzca segundo numero: ");
  28.        
  29.         scanf  ("%d",&b);
  30.        
  31.         fprintf (fichero, "\nIntroduzca segundo numero: %d", b);
  32.        
  33.         suma=a+b;
  34.        
  35.         printf ("\n\nLa suma de los dos numeros introducidos es: %d", suma);
  36.        
  37.         fprintf (fichero, "\n\nLa suma de los dos numeros introducidos es: %d\n\n\n", suma);
  38.  
  39.     } while (a != 0);
  40.  
  41.     //Cerrar el fichero
  42.     fclose (fichero);
  43. return 0;
  44. }
  #2 (permalink)  
Antiguo 02/06/2013, 06:21
 
Fecha de Ingreso: julio-2012
Mensajes: 375
Antigüedad: 12 años, 4 meses
Puntos: 28
Respuesta: Error inexplicable

No uses el Devcpp, tiene casi 10 años. Los hay más nuevos:
http://sourceforge.net/projects/code...p.exe/download

Y en cuanto al error, prueba a dejar un espacio en el scanf siguiente:

Código C++:
Ver original
  1. scanf  (" %d",&b);
  #3 (permalink)  
Antiguo 02/06/2013, 09:07
Musiker
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Error inexplicable

Cita:
Iniciado por amchacon Ver Mensaje
No uses el Devcpp, tiene casi 10 años. Los hay más nuevos:
http://sourceforge.net/projects/code...p.exe/download

Y en cuanto al error, prueba a dejar un espacio en el scanf siguiente:

Código C++:
Ver original
  1. scanf  (" %d",&b);
Gracias por la respuesta, pero he corregido eso y sigue ocurriendo lo mismo. También he instalado el codeblocks y pasa exactamente lo mismo en la misma línea. ¿Por qué puede ser?
  #4 (permalink)  
Antiguo 02/06/2013, 09:26
 
Fecha de Ingreso: julio-2012
Mensajes: 375
Antigüedad: 12 años, 4 meses
Puntos: 28
Respuesta: Error inexplicable

No has comprobado si el archivo se creó correctamente.

Es posible que no tengas permisos para escribir ahí, entonces el archivo no se crea y cuando intentas escribir, el programa entra en una excepción.

Quitale lo de "C:\", escribirá en la misma carpeta donde está el programa. Debería funcionar.
  #5 (permalink)  
Antiguo 02/06/2013, 09:38
Musiker
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Error inexplicable

Cita:
Iniciado por amchacon Ver Mensaje
No has comprobado si el archivo se creó correctamente.

Es posible que no tengas permisos para escribir ahí, entonces el archivo no se crea y cuando intentas escribir, el programa entra en una excepción.

Quitale lo de "C:\", escribirá en la misma carpeta donde está el programa. Debería funcionar.
Perfecto! Ahora sí funciona! Muchas gracias Una pregunta más, ¿entonces qué tendría que hacer si deseo especificar una ruta concreta y que no hubiese problema?
  #6 (permalink)  
Antiguo 02/06/2013, 10:19
 
Fecha de Ingreso: julio-2012
Mensajes: 375
Antigüedad: 12 años, 4 meses
Puntos: 28
Respuesta: Error inexplicable

Cita:
Iniciado por Musiker Ver Mensaje
Perfecto! Ahora sí funciona! Muchas gracias Una pregunta más, ¿entonces qué tendría que hacer si deseo especificar una ruta concreta y que no hubiese problema?
Pues poner la ruta sin problemas, solo acuerdate que en Windows hay directorios protegidos. La carpeta inicial del C:\ es uno de ellos.

De todas formas, yo no pondría rutas absolutas puesto que le resta portabilidad al programa. Prefiero rutas relativas:

Código C++:
Ver original
  1. fichero = fopen("./Archivos/Fichero.txt","w"); // Creo un archivo llamado Fichero.txt dentro de la carpeta Archivos. La carpeta debe encontrarse en el mismo directorio del programa

Etiquetas: int, programa, simple
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:47.