int printf(const char *fmto, ...)
|
Esta es la ya conocida función de escritura en pantalla. La función
printf()
, como las demás de su grupo, proporciona el número de caracteres impresos.
|
int fprintf(FILE *fp, const char *fmto, ...)
|
Esta función en análoga a
printf()
, con una salvedad: admite como primer argumento un puntero de archivo, y la información impresa no se envía a la pantalla, sino al archivo en cuestión.
|
int sprintf(char *cad, const char *fmto, ...)
|
Una nueva variante de
printf()
, que envía sus resultados a la cadena que se le proporciona como primer argumento.
|
int snprintf(char *cad, size_t tamaño, const char *fmto, ...)
|
Esta función también imprime sus argumentos en una cadena, con una característica adicional: se limita a un máximo de
tamaño
el número de caracteres impresos, incluyendo el '\0'.
|
\e
|
Escribir un carácter de <escape>.
|
\a
|
Escribir un carácter de <pitido>.
|
\b
|
Escribir un carácter de <retroceso>.
|
\f
|
Escribir un carácter de <salto de página>.
|
\n
|
Escribir un carácter de <salto de línea>.
|
\r
|
Escribir un carácter de <retorno de carro>.
|
\t
|
Escribir un carácter de <tabulador>.
|
\v
|
Escribir un carácter de <tabulador vertical>.
|
\'
|
Escribir un carácter de <comillas sencillas>.
|
\\
|
Escribir un carácter de barra invertida.
|
\número
|
Escribir un carácter de 8 bits cuyo valor ASCII es el número octal que (de 1, 2 o 3 dígitos) que se adjunta.
|
int scanf (const char *formato, ...)
|
Esta es la función de lectura por excelencia. Su primer argumento es una cadena que contiene especificaciones de conversión; esas especificaciones se aplicarán a los argumentos proporcionados a través de
stdin
y el resultado se irá almacenando en las variables homólogas señaladas por las direcciones que se aportan como argumentos segundo y siguientes. Los especificadores de conversión se denotan mediante el signo
%
, que puede ir seguido por uno de los caracteres que se indican en la Tabla de modificadores de conversión, más abajo. Además de estos indicadores, puede existir un campo de longitud máxima, que se expresa como un valor decimal inserto entre el
%
y el indicador de conversión. Cuando se emplea este indicador de longitud máxima del campo, se descartan los posibles espacios en blanco sin contarlos como parte del mismo.
|
int fscanf(FILE *flujo, const char *formato, ...)
|
Esta función lee del flujo proporcionado como primer argumento, respetando las mismas convenciones que son de aplicación para la función
scanf()
.
|
int sscanf(const char *cad, const char *formato, ...)
|
Esta función lee de la cadena proporcionada como primer argumento, respetando las mismas convenciones que son de aplicación para la función
scanf()
|
*
|
Suprime la asignación de esta conversión. La conversión se realiza, pero su resultado se descarta.
|
h
|
Indica que la conversión siguiente es
dioux
ó
n
y que el puntero siguiente señala un
short int
(no un
int
). Se trata, por tanto, de la conversión de un valor numérico de precisión sencilla.
|
l
|
Indica que la conversión siguiente es
dioux
ó
n
y que el puntero siguiente señala un
long int
, o bien que la conversión va a ser
ef
ó
g
y el próximo puntero es de un
double
(no de un
float
). Esto denota la conversión de un valor numérico de doble precisión
|
q
|
Indica que la conversión siguiente es
dioux
ó
n
y que el puntero siguiente señala un
quad_t
(no un
int
). Se trata, por tanto, de la conversión de un valor numérico de precisión cuádruple.
|
L
|
Indica que la conversión será
ef
ó
g
y que el próximo puntero es de un
long double
. Es una conversión de cuádruple precisión.
|
%
|
Denota precisamente el signo de %. Esto es, la conversión %% se corresponde con un único %; no hay conversión ni se devuelve valor alguno.
|
d
|
Indica la conversión de un entero (que puede tener signo). El puntero correspondiente tiene que ser de un
int
.
|
D
|
Equivale a D./td>
|
i
|
Denota la conversión de un entero, que puede tener signo. Si el entero empieza por '0x' o '0X', se entiende que está escrito en hexadecimal y se efectúa la conversión en consecuencia. Si empieza por '0' se interpreta en octal, y si empieza por cualquier otro signo se interpreta en base 10. Sólo se utilizan los caracteres que correspondan a la base.
|
o
|
Indica conversión a octal. El puntero correspondiente debe ser de
unsigned int
.
|
O
|
Equivale a io.
|
u
|
Denota la converesión de un entero decimal que puede tener signo. El puntero asociado debe ser de un
unsigned int
.
|
x
|
Indica la conversión de un entero hexadecimal que puede tener signo. El puntero debe ser de un
unsigned int
.
|
X
|
Equivale a x.
|
f
|
Denota la conversión de un número de coma flotante y simple precisión, que podrá tener signo. El puntero asociado debe ser de
float
.
|
e
|
Equivale a
f
.
|
g
|
Equivale a
f
.
|
E
|
Equivale a
f
.
|
G
|
Equivale a
f
.
|
s
|
Denota una sucesión de caracteres que no sean espacios en blanco. Se descartan los espacios iniciales, si los hay. El puntero asociado debe ser de char, y la variable señalada debe disponer de espacio suficiente para almacenar todos los caracteres leídos, y el carácter NULL final. La lectura se detiene al llegar a un espacio en blanco, o cuando se ha leído el número máximo de caracteres.
|
c
|
Denota una sucesión de caracteres que no sean espacios en blanco. No se descartan los espacios iniciales; si se desea hacerlo, se antepone un espacio a este formato de conversión. El puntero asociado debe ser de char, y la variable señalada debe disponer de espacio suficiente para almacenar todos los caracteres leídos; no se añade el carácter NULL final. La lectura se detiene al llegar a un espacio en blanco, o cuando se ha leído el número máximo de caracteres. Por defecto, el número máximo de caracteres es 1; si se desea leer otra cantidad de caracteres, es preciso indicarlo.
|
[
|
Este carácter, junto con el corchete de cierre, permite especificar el conjunto de caracteres admisibles o inadmisibles para la próxima conversión. Esta especificación seguirá leyendo caracteres, y añadiéndolos a la cadena correspondiente (que debe disponer de espacio suficiente) hasta llegar a un carácter queno esté admitido. Los caracteres admitidos se pueden especificar individualmente (como en
[abc]
, que admite únicamente los caracteres
a
,
b
o
c
y se detiene en cuanto llega a uno que no pertenece a este grupo), y también se pueden admitir grupos de caracteres, separando el principio final del rupo mediante un guión (como en
[a-z]
, que admite todas las minúsculas sin signos diacríticos, y se detiene en cuanto llega a un carácter que no pertenezca a este grupo). Si se desea prohibir uno o más caracters, es preciso anteponer el signo de acento circunflejo ("^"). Por ejemplo, la especificación
[^abc]
admite cualquier carácter que no sea
a
,
b
ni
c
, y se detiene en cuanto llega a una
a
,
b
o
c
. Si se desea no admitir el guión específicamente, deberá colocarse en último lugar, al final de la lista de caracteres prohibidos, como en
[^abc-]
, que admitiría cualquier carácter menos
a
,
b
,
c
o
-
, y se detendrá en cuanto encuentre uno de ellos. Por ejemplo, la expresión
[^*]
denota que debe aceptarse cualquier carácter menos un asterisco; esto será útil en el tratamiento de archivos delimitados, pues permite leer un campo y se detiene al llegar al asterisco. Si el delimitador es un tabulador, emplearemos
[^\t]
, etc. El puntero correspondiente debe ser de
char
, y la variable señalada deberá disponer, insistimos, de espacio suficiente para almacenar todos los caracteres leídos. El conjunto de caracters admitidos recibe el nombre de
scanset
. Véase también la
función
strtok()
.
|
p
|
Denota conversión a puntero. El puntero asociado debe ser un puntero de
void
.
|
n
|
Esto no es una conversión, pues se limita a escribir el número de caracters leídos hasta el momento en la variable señalada por el puntero asociado, que debe ser un puntero de
int
.
|