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

 

 


Tema destacado: Introducción a Git (Primera Parte)


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

Desconectado Desconectado

Mensajes: 42


Ver Perfil
Curiosidad con printf en C
« en: 11 Octubre 2014, 19:18 pm »

Hola a todos,
Les cuento algo curioso...
Estaba trabajando en un archivo con registros de longitud fija.
Aqui viene lo curioso, estuve desde anoche pensando porque no se mostraba el contenido, revisaba el archivo y si tenia los datos.
Mi codigo era este
Código
  1.        while(fread(&buffer,1,header.recordLength,fd) == 1)
  2.        {
  3.            printf("%d-%s-%s-%s-%s-%d\n",
  4.                   buffer.recordNumber,
  5.                   buffer.firsName,
  6.                   buffer.lastName,
  7.                   buffer.nationality,
  8.                   buffer.DNI,
  9.                   buffer.age);
  10.        }
  11.  
Justo ahora se me ocurrio hacerlo asi, y curiosamente funciono  ;-)
Código
  1. while(fread(&buffer,1,header.recordLength,fd) != NULL)
  2. {
  3.    printf("%d-%s-%s-%s-%s-%d\n",buffer.recordNumber,buffer.firsName,buffer.lastName,buffer.nationality,buffer.DNI,buffer.age);
  4. }
  5.  

Entonces si tengo un registro con 30 campos, tambien tendría que hacer el printf en una sola linea? Alguien sabe porque no funciona de la primera forma (Creo que en c++ y Java si funciona así).
Saludos


En línea

La abstracción es la clave para lidiar con la complejidad.
engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Curiosidad con printf en C
« Respuesta #1 en: 11 Octubre 2014, 19:28 pm »

yo creo que la diferencia no está en hacerlo en una linea sino en

Código
  1. while(fread(&buffer,1,header.recordLength,fd) == 1)

y
Código
  1. while(fread(&buffer,1,header.recordLength,fd) != NULL)


el salto de linea no debería afectar


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
milx86

Desconectado Desconectado

Mensajes: 42


Ver Perfil
Re: Curiosidad con printf en C
« Respuesta #2 en: 11 Octubre 2014, 20:46 pm »

yo creo que la diferencia no está en hacerlo en una linea sino en

Se me fue al copiar y pegarXD , te cuento que las dos opciones  son:
Código
  1. while(fread(&buffer,1,header.recordLength,fd) == 1)
Gracias a rir3760 que me explicó lo del fread en un post anterior
« Última modificación: 11 Octubre 2014, 21:18 pm por freeCode » En línea

La abstracción es la clave para lidiar con la complejidad.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
getc() y printf
Programación C/C++
m@o_614 1 1,890 Último mensaje 12 Septiembre 2013, 23:44 pm
por ecfisa
Problemas con printf();
Programación C/C++
soyloqbuskas 4 2,955 Último mensaje 20 Octubre 2015, 00:57 am
por soyloqbuskas
Ayuda con printf
Programación C/C++
nemesis27 4 4,463 Último mensaje 27 Mayo 2017, 03:23 am
por nemesis27
No me ejecuta el printf
Programación C/C++
GonzaJava 5 3,173 Último mensaje 13 Abril 2018, 18:39 pm
por GonzaJava
Implementación de printf no termina con null las cadenas
Programación C/C++
huchoko 8 2,561 Último mensaje 8 Abril 2019, 03:29 am
por huchoko
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines