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

 

 


Tema destacado: Curso de javascript por TickTack


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Problemas con salto de lineas al leer un fichero
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problemas con salto de lineas al leer un fichero  (Leído 8,982 veces)
petrusqui

Desconectado Desconectado

Mensajes: 16



Ver Perfil WWW
Problemas con salto de lineas al leer un fichero
« en: 1 Abril 2012, 13:27 pm »

Buenas,

Hace poco que he empezado en C++ y ahora estoy intentado usar los ficheros. Y me he quedado estancado en un error. Os dejos una breve explicación de lo que hace el programa.
Calcula los números primos.
Imprime los números en un archivo "primos.txt" separándolos por una barra "/". Por ejemplo: "2/3/5/7/11".
Si el usuario quiere leer los números primos el programa tendría que hacer lo siguiente: si hay un número imprime el número, si hay una "/" hace un salto de linea.

Código donde creo que esta el problema:
Código
  1. //Abrimos o creamos el fichero numeros_primos.txt
  2. fichero_numero_primo = fopen("primos.txt", "r");
  3.  
  4. if (fichero_numero_primo == NULL)
  5. printf ("No se ha podido abrir el fichero numeros_primos.txt");
  6.  
  7. else
  8. {
  9.    numero_primo = fgetc(fichero_numero_primo);
  10. while (feof(fichero_numero_primo) == 0)
  11. {
  12. numero_primo = fgetc(fichero_numero_primo);
  13. if (numero_primo = '/')
  14.        printf("\n");
  15. else
  16. printf ("%d", numero_primo);
  17. }
  18.    fclose (fichero_numero_primo);
  19. }


En línea

satu


Desconectado Desconectado

Mensajes: 301

Siempre aprendiendo


Ver Perfil WWW
Re: Problemas con salto de lineas al leer un fichero
« Respuesta #1 en: 1 Abril 2012, 13:48 pm »

Hola

Las comparaciones se hacen con == no con =

Código
  1. if (numero_primo == '/')
  2.  

Además date cuenta de que al principio haces 2 lecturas
Código
  1. numero_primo = fgetc(fichero_numero_primo);
  2. while (feof(fichero_numero_primo) == 0)
  3. {
  4. numero_primo = fgetc(fichero_numero_primo);
  5.  

Así pierdes el primer número

Puedes sustituirlo por
Código
  1. while(feof(fgetc(fichero_numero_primo)) == 0)
  2. {
  3. if (numero_primo = '/')
  4.        printf("\n");
  5. else
  6. printf ("%d", numero_primo);
  7. }
  8.  

Saludos


En línea

Breakbeat como forma de vida
petrusqui

Desconectado Desconectado

Mensajes: 16



Ver Perfil WWW
Re: Problemas con salto de lineas al leer un fichero
« Respuesta #2 en: 1 Abril 2012, 17:45 pm »

Hola

Las comparaciones se hacen con == no con =

Código
  1. if (numero_primo == '/')
  2.  

Además date cuenta de que al principio haces 2 lecturas
Código
  1. numero_primo = fgetc(fichero_numero_primo);
  2. while (feof(fichero_numero_primo) == 0)
  3. {
  4. numero_primo = fgetc(fichero_numero_primo);
  5.  

Así pierdes el primer número

Puedes sustituirlo por
Código
  1. while(feof(fgetc(fichero_numero_primo)) == 0)
  2. {
  3. if (numero_primo = '/')
  4.        printf("\n");
  5. else
  6. printf ("%d", numero_primo);
  7. }
  8.  

Saludos

¡Gracias! Ya lo he solucionado, no me habia fijado que faltaba un igual :P A y ahora he puesto el código de más abajo al final de printf, así no me salto ningun carracter :P
Código
  1. numero_primo = fgetc(fichero_numero_primo);
  2.  


Gracias otra vez! =D
En línea

cassiel83

Desconectado Desconectado

Mensajes: 16


Ver Perfil
Re: Problemas con salto de lineas al leer un fichero
« Respuesta #3 en: 3 Abril 2012, 17:41 pm »

Hola este código me parece muy útil, por lo que entiendo se esta tomando los caracteres entre las separaciones "/" y se devuelven como enteros, por lo que "numero_primo" tendría que estar declarado al inicio como tal verdad?. Pero y si tuviera cadenas entre las separaciones (cad1/cad2/cad3/cad4), como podria hacer para tomar cada cadena y pasarla a una variable?, en este caso ya no se podria usar fgetc o me equivoco? 
En línea

cassiel83

Desconectado Desconectado

Mensajes: 16


Ver Perfil
Re: Problemas con salto de lineas al leer un fichero
« Respuesta #4 en: 4 Abril 2012, 20:11 pm »

Hola, gracias a Durasno ya lo he resuelto si a alguien le interesa la solución esta al final de este hilo:

http://foro.elhacker.net/programacion_cc/busqueda_desde_txt_en_c-t358256.0.html

saludos.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Solucionado [python] Salto de linea en lectura de fichero
Scripting
tonilogar 6 17,798 Último mensaje 26 Diciembre 2010, 01:28 am
por tonilogar
Contar Lineas y Leer Fichero
Java
<<<-Basura->>> 5 23,342 Último mensaje 29 Noviembre 2012, 23:00 pm
por HalconEye
Contar nuemero de lineas de un fichero
Programación C/C++
Cas980 2 15,051 Último mensaje 18 Abril 2014, 00:33 am
por rir3760
Problemas al leer un fichero en C
Programación C/C++
antolinalvaro 4 2,171 Último mensaje 27 Julio 2018, 09:11 am
por antolinalvaro
Grabar salto de linea en un fichero.
Programación C/C++
gastongaston 4 2,068 Último mensaje 3 Octubre 2018, 16:41 pm
por gastongaston
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines