SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: y0mism0 en Domingo 11 de Febrero de 2007, 22:27

Título: Varias Preguntas
Publicado por: y0mism0 en Domingo 11 de Febrero de 2007, 22:27
1. Cuando tu abres un fichero para entrada y salida ("r+"), y, despues de leer del fichero, por ej, haciendo un "fscanf(FILE *f....) ",   tienes que utilizar la funcion fflush, antes de escribir en el mismo fichero, por ej, haciendo un "fprintf(FILE *f...) ???

2. Es lomismo, para acceder a una estructura, poner " p->campo" que poner " (*p).campo?? y sin parentesis "*p.campo"?

3. Para que se utiliza la barra inclinada y el guion en estas sentencias?? "t[0].campo/t[0].campo2"   y   "t[0].campo-t[0].campo3"


4. Porque esta sentencia es incorrecta "reg3.reg2.reg1-->(*pa)" y esta otra no
" *(reg3.reg2.reg1-->pa)" ??


SAludos.
Título: Re: Varias Preguntas
Publicado por: su - en Domingo 11 de Febrero de 2007, 23:29
fflush es para limpiar el buffer asociado con I/O y cuando se trata desde el programa que lee los datos, como ocurre con stdin, la funcion fflush limpia el buffer.
Desde el flujo en el que el programa escribe los resultados, fflsuh escribe el contenido del buffer eb el archivo ligado y naturalmente limpia el buffer.

Bien, un buffer es automaticamente limpiado cuando esta lleno, cuando se cierra el flujo o cuando el programa finaliza.
Título: Re: Varias Preguntas
Publicado por: Geo en Lunes 12 de Febrero de 2007, 00:29
Cita de: "y0mism0"
2. Es lomismo, para acceder a una estructura, poner " p->campo" que poner " (*p).campo?? y sin parentesis "*p.campo"?
Las primeras dos son equivalentes, la tercera es un error. Como el operador "." tiene mayor precedencia que "*", la instrucción se evalúa como si tuvieras esto:
Código: Text
  1.  
  2. *(p.campo)
  3.  
  4.  
lo cual es un claro error, ya que p es un puntero y para acceder a los miembros mediante punteros debes usar el operador "->".

Cita de: "y0mism0"
3. Para que se utiliza la barra inclinada y el guion en estas sentencias?? "t[0].campo/t[0].campo2"   y   "t[0].campo-t[0].campo3"
División y resta, respectivamente.

Saludos,
JJ (Geo).