Problema: Como se usa el printf, cuales son todas sus opciones?
Variante: C
Solucion:
printf es una funcion estandar que debe tener todo compilador que compile codigo estandar
El prototipo de printf es:
int printf(const char *texto, ...);
El primer argumento "text" es donde se poner el texto que queremos mostrar en pantalla. Hay varios modificadores y caracteres especiales para poder modificar la salida de printf. En ejemplo de printf para poner texto es:
printf("Hola");
El segundo argumento "..." significa que va a ir un numero indefinido de argumentos y sirven para poder poner valores de variables en pantalla, para esto se necesitan los modificadores que se enlistan:
%d Para numeros decimales signo
%i Para numero "integer" que tambien son decimlaes con signo
%o Para poner un numero en forma octal.
%x Para poner un numero en forma hexadecimal, se puede usar %X para letras mayusculas.
%u Para numeros decimales sin signo
%c Para un simple caracter entre comillas simples o un byte.
%s Para cadenas de caracteres(palabras, oraciones, etc)
%f Para numeros decimales con punto decimal(3.151459)
%e Para notacion cientifica en la forma 1.23456e+/-7 Se puede usar %E para que salga la "e" en forma mayuscula.
%g y %G No encontre mucha info pero al parecer es lo mismo que %e y %E
%p Pone la direccion de un apuntador
%n Este es para guardar en su argumento correspondiente el numero total de caracteres escritos
%%, %\, etc son para poder poner caracteres especiales dentro del texto.
printf regresa el numero de caracteres escritos.
Tambien hay otros caracteres especiales para darle formato a la salida:
Aun no conosco todos, pero estos se encuentran en la tabla estandar de caracteres.
Unos de estos son:
\n Para pasar al siguiente renglon
\t Para tabulador horizontal
\b Para dar un retroceso
\r Para regresar hasta la izquierda o regresar el carro.
\v Para tabulador vertical
\f Avance de hoja
Un ejemplo usando varias de las caracteristicas de printf son:
Cita: int a=10, b=255, c;
float f=3.14159;
char texto[]="Hola, mundo";
char caracter='a';
int *puntero;
c=printf("\n\tLa variable a contiene:%d.\n\tEn hexadecimal tiene %x.\n\tEn octal tiene %o.\n puntero apunta a: %p, y el texto cice: %s\n\n", a, a, a, *puntero, texto);
printf("Se imprimieron %u caracteres.\n", c);
printf("La variable f contiene:%f, y dandole un formato de un decimal:%.1f\n);
printf("El caracter es: %c", caracter);
Este es un ejemplo de como se puede usar printf para poner todo tipo de datos en la pantalla.
Tambien se pueden usar otras versiones de printf para diferentes efectos como:
int sprintf(char *donde, char *texto, ...);
Para escribir dentro de una array de caracteres en vez de la pantalla.
Hay otras versiones mas que en si cumplen con el mismo proposito como:
vprintf
vfprintf
vsprintf
etc