C++ apendice a

Apéndice A - Funciones de biblioteca del
standard ANSI de C.
Antes de comenzar  a describir  las funciones de biblioteca del  standard ANSI de C,
unos pequeños comentarios:
Existen muchas mas funciones de las aquí  descritas,  pero este pequeño conjunto de
funciones  es  lo suficientemente amplio como para  que puedan realizarse  todas  las
operaciones necesarias.
Las funciones se encuentran clasificadas de acuerdo a la función que realizan (entrada/
salida de datos, etc.), con el fin de facilitar su uso.
Las funciones se presentan de la siguiente forma:
Nombre de la función: fclose
Fichero de includes donde se encuentra su prototipo: #include <stdio.h>
Formato de la función: int fclose(FILE *f);
Breve descripción de la función.
A.1 - Funciones de entrada y salida de datos.
fclose
#include <stdio.h>
int fclose(FILE *f);
La función fclose() cierra el archivo asociado a la variable f y vuelca su buffer
al disco. Después de un fclose(), la variable f queda desligada del archivo y cualquier
buffer que tuviera asignado se libera. Si fclose() se ejecuta de forma correcta, devuelve
el valor cero, en cualquier otro caso devuelve un valor distinto de cero.
feof
#include <stdio.h>
int feof(FILE *f);
La  función  feof() comprueba  el  indicador  de  posición  del  archivo  para
determinar si  se ha alcanzado el final  del archivo asociado a  f. Un valor distinto de
cero supone que el indicador de posición del archivo esta en el final del mismo, en caso
contrario se devuelve el valor cero.
ferror
#include <stdio.h>
int ferror(FILE *f);El lenguaje de programación C
La función ferror() comprueba si existen errores en alguna operación realizada
sobre el archivo asociado a f. Un valor devuelto de cero indica que no hay errores, un
valor  distinto  de  cero  indica  la  existencia  de  errores.  Los  indicadores  de  error
asociados  a  f permanecen activos  hasta  que  se  cierra  el  archivo o se  llama  a  las
funciones rewind() o perror().
fflush
#include <stdio.h>
int fflush(FILE *f);
La función fflush() vacía el buffer asociado a la variable f. Si el archivo ha sido
abierto para escritura,  fflush() vacía el contenido del buffer de salida en el archivo. Si
el archivo ha sido abierto para lectura, fflush() tan solo vacía el contenido del buffer de
entrada. Un valor de cero indica que el buffer se ha vaciado de forma correcta, un valor
distinto de cero indica un error. Todos los buffers se vuelcan automáticamente cuando
un programa termina de forma correcta,  cuando están llenos,  o cuando se cierra el
archivo (ver fclose()).
fgetc
#include <stdio.h>
int fgetc(FILE *f);
La función fgetc() devuelve el carácter  del archivo de entrada asociado a  f, e
incrementa el indicador de posición del archivo. El carácter se lee como unsigned char
y  se  convierte  a  int,  por  lo cual  no existe  ningún problema  en asignarle  el  valor
devuelto por fgetc() a una variable de tipo carácter (char).
fgets
#include <stdio.h>
char *fgets(char *cad,int num,FILE *f);
La  función  fgets() lee  como  máximo  hasta  num-1 caracteres  del  archivo
asociado a f y los sitúa en el array apuntado por cad. Los caracteres se leen hasta que
se recibe un carácter de salto de linea, un EOF (fin de fichero) o hasta que se llega al
limite  especificado.  Después  de  leídos  los  caracteres,  se  pone automáticamente  un
carácter  de nulo inmediatamente después del  ultimo carácter  leído.  Si  se termina la
lectura por un carácter de salto de linea, dicho carácter se guarda como parte de cad. Si
tiene éxito, fgets() devuelve un puntero a la dirección de cad. En caso de error devuelve
un puntero nulo (NULL).
fopen
#include <stdio.h>
FILE *fopen(const char *nombre,const char *modo);
La  función  fopen() abre  un archivo cuyo nombre viene dado por  nombre y
devuelve un puntero a una estructura de tipo FILE que se le asocia en la apertura. ElEl lenguaje de programación C
tipo de operaciones permitidas en el archivo están definidas por el valor de modo. Los
valores permitidos de modo son:
Modo Descripción
r Abrir un archivo para lectura.
w Crear un archivo para escritura.
a Abrir un archivo para añadir.
rb Abrir un archivo binario para lectura.
wb Crear un archivo binario para escritura.
ab Abrir un archivo binario para añadir.
rt Abrir un archivo de texto para lectura.
wt Crear un archivo de texto para escritura.
at Abrir un archivo de texto para añadir.
r+ Abrir una archivo para lectura/escritura.
w+ Crear un archivo para lectura/escritura.
a+ Abrir un archivo para leer/añadir.
r+b Abrir un archivo binario para lectura/escritura.
w+b Crear un archivo binario para lectura/escritura.
a+b Abrir un archivo binario para leer/añadir.
r+t Abrir un archivo de texto para lectura/escritura.
w+t Crear un archivo de texto para lectura/escritura.
a+t Abrir un archivo de texto para leer/añadir.
Tabla A.1.1: Modos de apertura de un fichero con la función fopen().
Si fopen() tiene éxito en abrir el archivo, devuelve un puntero de tipo FILE, en
caso contrario devuelve un puntero nulo (NULL).
fprintf
#include <stdio.h>
int fprintf(FILE *f,const char *formato,...);
La  función  fprintf() escribe  en  el  archivo  asociado  a  f los  valores  de  los
argumentos que componen su lista  de argumentos según se especifica en la cadena
formato.  Devuelve  un  número  que  indica  el  número  de  caracteres  escritos.  Si  se
produce  un  error  se  devuelve  un  valor  negativo.  Para  una  explicación  sobre  sus
argumentos consúltese la función printf().
fputc
#include <stdio.h>
int fputc(int c,FILE *f);
La  función  fputc() escribe  el  carácter  especificado  por  c en  el  archivo
especificado por f a partir de la posición actual  del archivo, y entonces incrementa el
indicador de posición del archivo. Aunque c tradicionalmente se declara de tipo int, es
convertido por  fputc() a  unsigned char, por lo cual  en lugar  de un int se puede usar
como argumento un char o unsigned char. Si se utiliza un int, la parte alta del mismoEl lenguaje de programación C
será ignorada y no se escribirá.  Si  se ejecuta de forma correcta,  fputc() devuelve el
valor c, en caso de error devuelve el valor EOF.
fputs
#include <stdio.h>
int fputs(const char *cad,FILE *f);
La función fputs() escribe el contenido de la cadena de caracteres apuntada por
cad en el archivo especificado por f. El carácter nulo de terminación de la cadena no es
escrito. En caso de error fputs() devuelve el valor EOF.
fread
#include <stdio.h>
int fread(void *buf,size_t tam,sise_t cuenta, FILE *f);
La función fread() lee cuenta numero de elementos, cada uno de ellos de  tam
bytes de longitud, del archivo asociado a la variable f, y los sitúa en el array apuntado
por  buf.  El  indicador  de posición del  archivo se incrementa en el  número de bytes
leídos. La función fread() devuelve el número de elementos realmente leídos. Si se leen
menos elementos de los pedidos en la llamada se produce un error. La función fread()
funciona de forma correcta en archivos abiertos en modo binario; en archivos abiertos
en modo texto, pueden producirse ciertos cambios de caracteres (salto de carro seguido
de salto de linea se convierte en salto de linea, etc.).
fscanf
#include <stdio.h>
int fscanf(FILE *f,const char *formato,...);
La función fscanf() lee del archivo asociado a la variable f de igual forma que la
función  scanf() lo realiza del  teclado.  Devuelve el numero de argumentos a los que
realmente  se  asigna  valores.  Este  número no incluye  los  campos  ignorados.  Si  se
produce un error antes de realizar la primera asignación se devuelve el valor EOF. Para
mas información consultar la función scanf().
fseek
#include <stdio.h>
#int fseek(FILE *f,long desp,int origen);
La función  fseek() coloca el  indicador  de posición del  archivo asociado a la
variable f de acuerdo a los valores dados por origen y desp. Su objetivo es dar soporte
a las operaciones de E/S de acceso directo.  El valor de  origen debe ser una de estas
constantes, definidas en stdio.h:
Origen Nombre de la constante Valor
Comienzo del archivo SEEK_SET 0
Posición actual SEEK_CUR 1El lenguaje de programación C
Final del archivo SEEK_END 2
Tabla A.1.2: Valores del origen en la función fseek().
La función fseek() devuelve un valor de cero si sucede correctamente, en caso
contrario el valor devuelto es distinto de cero.
Puede utilizarse  fseek() para  mover  el  indicador  de posición en el  archivo a
cualquier  lugar  del  mismo,  incluso mas  alla  del  final  del  mismo,  pero es  un error
intentar situarse antes del comienzo del archivo.
ftell
#include <stdio.h>
long ftell(FILE *f);
La función ftell() devuelve el valor actual del indicador de posición del archivo
asociado a la variable f. Para archivos binarios, el valor devuelto es el número de bytes
desde el principio del archivo. Para archivos de texto solo debe usarse como argumento
para la función fseek(), ya que, debido a que secuencias de caracteres como retorno de
carro y salto de línea pueden sustituirse por un salto de línea, el tamaño aparente del
archivo puede variar. Si falla la función ftell() devuelve el valor -1L.
fwrite
#include <stdio.h>
int fwrite(const void *buf,size_t tam,size_t cuenta,FILE *f);
La función fwrite() escribe  cuenta numero de elementos, cada uno de ellos de
tam bytes de longitud, del array apuntado por buf al archivo asociado a la variable f. El
indicador  de posición del  archivo se incrementa en el  número de bytes  escritos.  La
función  fwrite() devuelve el  número de elementos realmente escritos.  Si  se escriben
menos elementos de los pedidos en la llamada se produce un error. La función fwrite()
funciona de forma correcta en archivos abiertos en modo binario; en archivos abiertos
en modo texto, pueden producirse ciertos cambios de caracteres (salto de carro seguido
de salto de linea se convierte en salto de linea, etc.).
getc
#include <stdio.h>
int getc(FILE *f);
La función  getc() devuelve del  archivo de entrada asociado a la variable  f el
siguiente carácter  desde la posición actual  e incrementa el indicador de posición del
archivo. El carácter se lee como unsigned char y se transforma en un int. Si se alcanza
el final  de archivo devuelve el carácter  EOF. Debido a que  EOF es un valor valido
para  archivos  abiertos  en  modo  binario,  debe  utilizarse  la  función  feof() para
comprobar el final del fichero en dichos archivos.
getsEl lenguaje de programación C
#include <stdio.h>
char *gets(char *cad);
La función gets() lee caracteres desde stdin (entrada standard, normalmente el
teclado),  y los sitúa en el  array de caracteres  apuntado por  cad.  Se leen caracteres
hasta que se recibe un carácter de salto de línea o una marca de EOF. El carácter de
terminación  se  transforma,  automáticamente,  en  el  carácter  nulo  para  terminar  la
cadena. Si se ejecuta correctamente, gets() devuelve un puntero a cad. En caso de error
se devuelve un puntero nulo (NULL).  No existe límite al  número de caracteres que
leerá  gets(),  por  lo  cual  le  corresponde  al  programador  asegurarse  de  que  no  se
sobrepasa el tamaño del array apuntado por cad.
perror
#include <stdio.h>
int perror(const char *cad);
La función perror() convierte el valor de la variable global errno en una cadena
de caracteres y escribe esta cadena en stderr (salida standard de error). Si el valor de
cad no es nulo (NULL), se escribe primero la cadena apuntada por cad, seguida de dos
puntos y el mensaje de error asociado.
printf
#include <stdio.h>
int printf(const char *formato,...);
La función printf() escribe en stdout (salida standard, generalmente la pantalla),
los  argumentos  que componen la  lista  de argumentos  bajo el  control  de la  cadena
apuntada  por  formato.  La  cadena  apuntada  por  formato consta  de  dos  tipos  de
elementos.  El  primer  tipo  esta  constituido  por  los  caracteres  que  se  mostraran  en
pantalla.  El segundo tipo contiene las ordenes de formato que describen la forma en
que se muestran los argumentos. Una orden de formato comienza por el signo %, y le
sigue el código de formato. Las ordenes de formato son:
Especificador Descripción
%c Carácter.
%d Enteros decimales con signo.
%i Enteros decimales con signo.
%e Punto flotante en notación científica (e minúscula).
%E Punto flotante en notación científica (E mayúscula).
%f Punto flotante.
%g Usar el más corto de %e y %f.
%G Usar el más corto de %E y %f.
%o Octal sin signo.
%s Cadena de caracteres.
%u Enteros decimales sin signo.
%x Hexadecimales sin signo (letras minúsculas).El lenguaje de programación C
%X Hexadecimales sin signo (letras mayúsculas).
%p Mostrar un puntero.
%n El argumento asociado es un puntero a un entero, el cual  recibirá el
número de caracteres escritos.
%% Imprimir el signo %.
Tabla A.1.3: Especificadores de formato de la función printf().
Existen ademas  los  modificadores  h (short),  l (long)  y  L.  El  modificador  h
(short) se puede aplicar a los tipos d,  i,  o,  u.,  x y X, y le dice que el tipo de datos es
short int o unsigned short int según el caso. El modificador l (long), se puede aplicar a
los casos anteriores, significando que el tipo de datos es long int o unsigned long int,
pero, además, se puede aplicar a los tipos e, E, f y g, indicando que el tipo de datos es
double. El modificador L se puede aplicar a los tipos e, E, f y g, y dice que el tipo de
datos es long double.
La función  printf() devuelve el  número de caracteres  realmente escritos.  Un
valor negativo indica que se ha producido un error.
putc
#include <stdio.h>
int putc(int c,FILE *f);
La función putc() escribe el carácter contenido en el byte menos significativo
de  c en  el  archivo  apuntado  por  f.  Dado  que  los  argumentos  de  tipo  char son
transformados  en argumentos  de tipo  int en el  momento de  la  llamada,  se  pueden
utilizar  variables  de  tipo  char para  el  argumento  c de  putc().  La  función  putc()
devuelve el carácter escrito. En caso de error devuelve EOF, y, dado que EOF es un
valor  valido en archivos abiertos  en modo binario,  se recomienda en dicho tipo de
archivos el uso de la función ferror() para la comprobación de errores.
puts
#include <stdio.h>
int puts(char *cad);
La función puts() escribe la cadena apuntada por cad en el dispositivo de salida
standard.  El carácter  nulo de terminación de cadena se transforma en un carácter  de
salto de línea.  Si  tiene éxito,  se devuelve un valor no negativo.  En caso de error se
devuelve el valor EOF.
rewind
#include <stdio.h>
void rewind(FILE *f);
La función rewind() mueve el indicador de posición del archivo apuntado por f
al principio del mismo. La función rewind() inicializa también los indicadores de error
y de fin de archivo asociados a la variable f. Ningún valor es devuelto.El lenguaje de programación C
scanf
#include <stdio.h>
int scanf(const char *formato,...);
La  función  scanf() es  una  rutina  de  propósito  general  que  lee  de  stdin
(dispositivo standard de entrada, normalmente el teclado). Puede leer los tipos de datos
que haya y transformarlos en el formato interno adecuado. Es la inversa de la función
printf().  La  cadena  de  control  especificada  por  formato consiste  en tres  clases  de
caracteres:
• Especificadores de formato.
• Caracteres de espacio en blanco.
• Caracteres que no sean espacios en blanco.
Los especificadores de formato de entrada están precedidos por el signo %, y dicen
a  scanf() que tipo de datos  van a ser  leídos a continuación.  Los especificadores de
formato validos son:
Especificador Descripción.
%c Leer un único carácter.
%d Leer un entero decimal.
%i Leer un entero decimal.
%e Leer un número en punto flotante.
%f Leer un número en punto flotante.
%g Leer un número en punto flotante.
%o Leer un número octal.
%s Leer una cadena de caracteres.
%x Leer un número hexadecimal.
%p Leer un puntero.
%n Recibe  un  valor  igual  al  número  de  carácter
leídos.
%u Leer un entero sin signo.
Tabla A.1.4: Especificadores de formato de la función scanf().
Además,  es posible utilizar  los modificadores  h (short),  l (long) y  L de igual
forma que en la función printf().
Un espacio en blanco en la cadena de control da lugar a que scanf() salte sobre
uno o mas espacios de la cadena de entrada, un espacio en blanco puede ser un espacio,
un tabulador o un salto de línea. Además, un espacio en blanco da lugar,  también, a
que scanf() lea, pero no guarde cualquier número de espacios en blanco, incluso cero.
Un carácter que no sea espacio en blanco, da lugar a que scanf() lea y elimine el
carácter  asociado.  Por  ejemplo,  %d:%d da  lugar  a  que  scanf() lea  primero un  int,
después lea, y descarte, los dos puntos, y luego lea otro int. Si el carácter especificado
no se encuentra, scanf() termina su ejecución.El lenguaje de programación C
Todas las variables utilizadas para recibir valores a través de scanf() deben ser
pasadas  por  referencia,  o sea,  por  sus direcciones.  Esto supone que los argumentos
deben ser punteros a las funciones.
La presencia del signo * después del signo % y antes del código del formato,
produce que scanf() lea, pero no asigne el valor leído a ninguna variable, por ejemplo:
scanf("%d%*c%d",&x,&y);
Provoca, si la entrada es 10/20, que se le asigne el valor  10 a la variable x, se
lea y descarte el signo /, y después se asigne el valor 20 a la variable y.
La  función  scanf() devuelve  un  número  igual  al  de  campos  que  han  sido
asignados correctamente, este número no incluye los campos que fueron leídos, pero
no asignados, utilizando el modificador * para eliminar la asignación.
setbuf
#include <stdio.h>
void setbuf(FILE *f, char *buf);
La función setbuf() se utiliza para determinar el buffer del archivo asociado a la
variable f que se utilizara, o bien, si se llama con buf a nulo (NULL), para desactivar el
buffer. Si un buffer va a ser definido por el programador, su tamaño debe ser BUFSIZ,
siendo  BUFSIZ una constante definida en el  archivo  stdio.h.  La función  setbuf() no
devuelve ningún valor.
setvbuf
#include <stdio.h>
int setvbuf(FILE *f,char *buf,int modo,.size_t tam);
La función setvbuf() permite al programador especificar el buffer, el tamaño y
el modo para el archivo asociado a la variable f. El array de caracteres apuntado por
buf se utiliza como buffer de f para las operaciones de entrada y salida. Si buf es nulo
(NULL),  setvbuf() creara su propio buffer, de tamaño tam, mediante una llamada a la
función malloc(). El tamaño del buffer se fija mediante el valor de tam, que debe ser
siempre mayor  de cero.  La variable  modo determina el  uso del  buffer.  Los valores
legales de modo, definidos en stdio.h, son:
Modo Descripción
_IOFBF Modo normal, el buffer se vacía solo cuando se llena (en escritura), o bien,
cuando ya se ha leído todo su  contenido (en lectura).
_IOLBF Igual al anterior, solo que el buffer también se vacía cuando se lee o escribe
un retorno de carro.
_IONBF Desactiva el buffer.
Tabla A.1.5: Valores del modo en la función setvbuf().El lenguaje de programación C
La función setvbuf() devuelve un valor de cero si se ejecuta con éxito. En caso
de error, un valor distinto de cero será devuelto.
sprintf
#include <stdio.h>
int sprintf(char *buf,const char *formato,...);
La  función  sprintf() es  idéntica  a  la  función  printf(),  excepto  que la  salida
generada se sitúa en el array apuntado por buf. El valor devuelto por la función es igual
al  número de caracteres realmente situados en el array.  Para una mayor explicación
refiérase a la función printf().
sscanf
#include <stdio.h>
int sscanf(const char *buf,const char *formato,...);
La función sscanf() es idéntica a la función scanf(), excepto que los datos son
leídos del array apuntado por buf. El valor devuelto por la función es igual al número
de campos que hubieran sido realmente asignados. Este número no incluye los campos
que  fueron saltados  al  utilizar  el  modificador  de  ordenes  de  formato  *.  Para  más
detalles vea la función scanf().
ungetc
#include <stdio.h>
int ungetc(int c,FILE *f);
La  función  ungetc() devuelve  el  carácter  especificado  por  el  byte  menos
significativo  de  c al  archivo especificado  por  f.  Este  carácter  será  devuelto  en la
siguiente  operación de lectura  sobre el  archivo.  Una llamada  a  fflush() o a  fseek()
deshace  una  operación  ungetc() y  deshecha  el  carácter  previamente  devuelto  a  la
secuencia de entrada.  No se debe usar  ungetc() sobre una marca de  EOF.  El  valor
devuelto por la función es igual a c, si la función ha tenido éxito, e igual a EOF, si ha
fallado.

No hay comentarios.:

Publicar un comentario

!!Clikeaka al espacio cideral!!

THEMRFRIKI S.A. Con tecnología de Blogger.

About