Como usar Printf y Scanf en C++
Estas dos funciones forman parte de la librería de entrada y salida <cstdio> printf es para imprimir texto por consola mientras que scanf captura el texto que el usuario escriba en nuestro programa y lo guarda en una variable que indicaremos, es mucho más sencillo el uso de printf que el de scanf por eso veamos primero como funciona printf para luego pasar a analizar el uso de scanf.
Como utilizar printf en C++
Para imprimir un texto directamente sin necesidad de utilizar una variable solo tenemos que encerrar el texto entre comillas y colocarlo dentro de los paréntesis de la función printf, veamos un ejemplo de su uso.
#include <cstdlib>
#include <cstdio>
int main(){
printf("Adios mundo");
system("pause");
}
Si quisiéramos imprimir el texto de 1 sola variable bastará con incluirla dentro de los paréntesis sin encerrarla entre comillas, pero el proceso se complica cuando queremos imprimir 2 o más variables o incluso cuando queremos mezclar texto y variables de forma consecutiva (acción bastante frecuente), un ejemplo seria considerar que en una variable de tipo entero tengamos algunos números incluidos por el usuario y queremos imprimirlos pero obviamente antes de esto queremos añadir un poco de texto que diga "Los números son: ", en este caso tenemos que incluir un par de indicadores del tipo de datos que estamos utilizando veamos el ejemplo.
#include <cstdlib>
#include <cstdio>
int numeros=123;
int main(){
printf("Los numeros son: %i",numeros);
system("pause");
}
%i es el indicador de formato se coloca si la variable después de la coma es de tipo entero, i proviene de integer que significa entero en español, pero existen otros tipos %c en caso que queramos imprimir solo 1 carácter, y %s en caso que queramos imprimir toda una cadena de texto "s" significa string y se traduce al español como cadena, cadena de texto, veamos el siguiente ejemplo
#include <cstdlib>
#include <cstdio>
char texto[]="Este es todo mi texto";
int main(){
printf("El texto es: %s ",texto);
system("pause");
}
Imprimir 2 variables en c++
Si queremos imprimir 2 o más variables en C++ todas se separan por coma, reservado el primer espacio antes de la coma para colocar tantos indicadores como sea necesario del tipo de datos de cada variable en el mismo orden que se escribirán, con ejemplos se entiende mejor así es que preste mucha atención al siguiente ejemplo, e intente entender el porqué de cada indicador.
#include <cstdlib>
#include <cstdio>
char texto[]="Los numeros son: ";
int numeros=123;
char ultimo[]="Codigazo, Cursos de programacion actualizados";
int main(){
printf("%s %i \n%s\n",texto,numeros, ultimo); // \n Produce un salto de linea
system("pause");
}
Uso de scanf en C++
El uso de scanf es bastante similar una vez se ha entendido printf, siempre tiene 2 parámetros, en el de la izquierda se anota un indicador de formato y a la derecha una variable, pasemos a observar un código practico.
#include <cstdlib>
#include <cstdio>
char texto[100];
int main(){
scanf("%100s",texto); // Esta es la linea nueva
printf("%s\n",texto);
system("pause");
}
¿Scanf es igual a Cin ?
Sirven para lo mismo en el sentido de que ambas capturan texto que el usuario ingrese y lo almacenan en una variable, la diferencia radica en que scanf es parte del lenguaje C y por tanto se ha heredado a C++, mientras que la función cin es parte de C++ y no se puede encontrar en el lenguaje C, cin es mucho más fácil de utilizar no es necesario indicar el formato de la variable que se utilizará veamos un ejemplo.
#include <cstdlib>
#include <iostream>
using namespace std;
string texto;
int main(){
cin >> texto;
cout << "texto";
system("pause");
}
Cout y Cin están contenidos dentro de la librería iostream y es indispensable para su uso indicar el espacio de nombres STD, puede indicarse al momento de utilizar la función "std::cin" o indicar previamente que se usará el espacio de nombres, como en el ejemplo anterior.
¿Que es mejor utilizar en C++ Scanf o Cin?
Se utiliza por defecto Cin puesto que no hay ventaja al utilizar Scanf dentro de C++, aun así es opcional y se puede emplear una u otra siempre y cuando no se esté utilizando el tipo de datos para texto "string" porque este pertenece a C++ y no es compatible con scanf.
Error 'scanf' was not declared in this scope
Si presenta el error anterior tenga en cuenta que dicho error se traduce como "scanf no fue declarado dentro de este ámbito", ese error se presenta este problema es porque ha olvidado importar la librería <stdio.h>. Este error se soluciona colocando "#include <stdio.h>" al inicio del código.