stdio.h

stdio.h, que significa "standard input-output header" (cabecera estándar E/S), es el archivo de cabecera que contiene las definiciones de las macros, las constantes, las declaraciones de funciones de la biblioteca estándar del lenguaje de programación C para hacer operaciones, estándar, de entrada y salida, así como la definición de tipos necesarias para dichas operaciones. Por motivos de compatibilidad, el lenguaje de programación C++ (derivado de C) también tiene su propia implementación de estas funciones, que son declaradas con el archivo de cabecera cstdio.

Las funciones declaradas en stdio.h son sumamente populares.


La biblioteca estándar en C++, ofrece un amplio conjunto de funciones para cálculos matemáticas comunes, manipulaciones de cadenas, manipulaciones de caracteres,entrada diagonal salida, verificación de errores y muchas otras operaciones útiles.

Ejemplo de uso

En C, C++ y sus derivados, todas las funciones son declaradas en archivos de cabecera. Así, los programadores tienen que incluir el archivo de cabecera stdio.h dentro del código fuente para poder utilizar las funciones que están declaradas. Nota: el compilador diferencia las mayúsculas de las minúsculas.

 #include <stdio.h>

 int main(void) {
   int ch;

   while ( ( ch = getchar() ) != EOF )
     putchar(ch);
   putchar('\n');
   
   return 0;
 }

El programa lee todas las entradas desde la entrada estándar y las muestra en la salida estándar, línea a línea.-

Funciones miembro

Las funciones declaradas en stdio.h pueden clasificarse en dos categorías: funciones de manipulación de ficheros y funciones de manipulación de entradas y salidas.

NombreDescripción
Funciones de manipulación de ficheros
fcloseCierra un fichero a través de su puntero.
fopen, freopen, fdopenAbre un fichero para lectura, para escritura/reescritura o para adición.
removeElimina un fichero.
renameCambia al fichero de nombre.
rewindColoca el indicador de posición de fichero para el stream apuntado por stream al comienzo del fichero.
tmpfileCrea y abre un fichero temporal que es borrado cuando cerramos con la función fclose().
Funciones de manipulación de entradas y salidas.
clearerrDespeja los indicadores de final de fichero y de posición de fichero para el stream apuntado por stream al comienzo del fichero.
feofComprueba el indicador de final de fichero.
ferrorComprueba el indicador de errores.
fflushSi stream apunta a un stream de salida o de actualización cuya operación más reciente no era de entrada, la función fflush envía cualquier dato aún sin escribir al entorno local o a ser escrito en el fichero; si no, entonces el comportamiento no está definido. Si stream es un puntero nulo, la función fflush realiza el despeje para todos los streams cuyo comportamiento está descrito anteriormente.
fgetposDevuelve la posición actual del fichero.
fgetcDevuelve un carácter de un fichero.
fgetsConsigue una cadena de caracteres de un fichero.
fputcEscribe un carácter en un fichero.
fputsEscribe una cadena de caracteres en un fichero.
ftellDevuelve la posición actual del fichero como número de bytes.
fseekSitúa el puntero de un fichero en una posición aleatoria.
fsetposCambia la posición actual de un fichero.
freadlee diferentes tamaños de datos de un fichero.
fwriteEnvía, desde el array apuntado por puntero, hasta nmemb de elementos cuyo tamaño es especificado por tamaño. El indicador de posición de ficheros es avanzado por el número de caracteres escritos correctamente. Si existe un error, el valor resultante del indicador de posición de ficheros es indeterminado.
getcDevuelve un carácter desde un fichero.
getcharDevuelve un carácter desde la entrada estándar
getsLee caracteres de entrada hasta que encuentra un salto de línea, y los almacena en un único argumento.
printf, fprintf, sprintf
snprintf
Usados para imprimir salidas de datos.
vprintfTambién utilizado para imprimir salidas.
perrorEscribe un mensaje de error a stderr.
putcEscribe un carácter en un fichero.
putcharEscribe un carácter en la salida estándar
puts. Escribe una cadena de caracteres en la salida estándar
scanf, fscanf, sscanfUtilizado para introducir entradas.
vfscanf, vscanf, vsscanfTambién utilizado para introducir entradas.
setbufEsta función es equivalente a la función setvbuf pasando los valores _IOFBF para modo y BUFSIZ para tamaño, o (si acumulador es un puntero nulo), con el valor _IONBF para modo.
setvbufSólo puede ser usada después de que el stream apuntado por stream ha sido asociado con un fichero abierto y antes de otra operación cualquiera es llevada a cabo al stream. El argumento modo determina cómo stream será almacenado según lo siguiente: _IOFBF ocasiona la entrada/salida a ser completamente almacenado; _IOLBF ocasiona la entrada/salida a almacenar por líneas; _IONBF ocasiona la entrada/salida a no ser almacenado. Si acumulador no es un puntero nulo, el array al que es apuntado puede ser usado en vez de la acumulación adjudicada por la función setvbuf. El argumento tamaño especifica el tamaño del array.
tmpnamGenera una cadena de caracteres que es un nombre válido para ficheros y que no es igual al nombre de un fichero existente. La función tmpnam genera una cadena diferente cada vez que es llamada, hasta un máximo de TMP_MAX veces. Si la función es llamada más veces que TMP_MAX, entonces el comportamiento de la función está definido según la implementación del compilador.
ungetc

Constantes miembro

Las constantes definidas en el fichero cabecera stdio.h son:

NombreDescripción
EOFEntero negativo (int) usado para indicar "fin de fichero".
BUFSIZEntero que indica el tamaño del buffer de datos utilizado por la función setbuf().
FILENAME_MAXTamaño máximo de la cadena de caracteres que contienen el nombre de un fichero para ser abierto
FOPEN_MAXNúmero máximo de ficheros que pueden estar abiertos simultáneamente.
_IOFBFAbreviatura de input/output fully buffered (buffer entrada/salida totalmente lleno); es un entero que se puede pasar como parámetro de la función setvbuf() para requerir bloqueo del buffer en la entrada y salida del stream abierto.
_IOLBFAbreviatura de input/output line buffered (...??); es un entero que se puede pasar como parámetro a la función setvbuf() para requerir line buffered (??) en la entrada y salida del stream abierto.
_IONBFAbreviatura de "input/output not buffered" (entrada/salida sin buffer); es un entero que se puede pasar como parámetro a la función setvbuf() para requerir que la entrada salida del stream abierto funcione sin buffer.
L_tmpnamTamaño de la cadena de caracteres con la longitud suficiente para almacenar un nombre de fichero temporal generado por la función tmpnam().
NULLMacro que representa la constante puntero nulo; representa un valor de puntero que no apunta a ninguna dirección válida de objeto alguno en memoria.
SEEK_CUREntero que se puede pasar como parámetro a la función fseek() para indicar posicionamiento relativo a la posición actual del fichero.
SEEK_ENDEntero que se puede pasar como parámetro a la función fseek() para indicar posicionamiento relativo al final del fichero.
SEEK_SETEntero que se puede pasar como parámetro a la función fseek() para indicar posicionamiento relativo al inicio del fichero.
TMP_MAXEl número máximo de nombres de ficheros únicos generables por la función tmpnam().

Variables miembro

El fichero de cabecera stdio.h define las siguientes variables:

NombreDescripción
stdinPuntero a FILE que referencia la entrada estándar, normalmente el teclado.
stdoutPuntero a FILE que referencia la salida estándar, normalmente el monitor.
stderrPuntero a FILE que referencia la salida de error estándar, normalmente el monitor.

Tipos miembro

Los tipos de datos definidos en el fichero de cabecera stdio.h son:

  • FILE - estructura que contiene información sobre el fichero o stream (flujo) de texto necesario para realizar las operaciones de entrada/salida sobre él. incluye:
    • posición actual de stream
    • indicador de fin de fichero (EOF)
    • indicador de error
    • puntero al buffer del stream
  • fpos_t - tipo no-array capaz de identificar unívocamente la posición de cada byte en un archivo
  • size_t - tipo entero sin signo (positivo); es el tipo devuelto por el operador sizeof

Véase también

Este artículo ha sido escrito por Wikipedia. El texto está disponible bajo la licencia Creative Commons - Atribución - CompartirIgual. Pueden aplicarse cláusulas adicionales a los archivos multimedia.