Uso adecuado de std::cin y std::cout
Realice operaciones de entrada y salida con los streams estándar y evite los errores habituales.
Uso adecuado de std::cin y std::cout es una lección gratuita de C++ Academy en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de C++ Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de C++ Academy incluye 4 lecciones en total.
La cabecera iostream
Tanto std::cin como std::cout son objetos de la cabecera <iostream>. Representan los streams estándar de entrada y salida de su terminal.
Salida con std::cout
Envíe valores a std::cout con <<. Funciona con cualquier tipo que tenga una sobrecarga de operator<<, incluidos todos los tipos integrados y std::string.
int age = 30;
std::string name = "Ada";
std::cout << "Name: " << name << ", Age: " << age << "\n";Entrada con std::cin
Lea valores con std::cin >> variable. Los espacios en blanco separan los tokens.
int age;
std::string name;
std::cout << "Enter name and age: ";
std::cin >> name >> age;
std::cout << name << " is " << age << "\n";Omisión de espacios en blanco
De forma predeterminada, >> omite los espacios en blanco iniciales (espacios, tabulaciones y saltos de línea) antes de leer. Normalmente esto es lo que se desea, pero debe tenerlo en cuenta al leer caracteres individuales.
Lectura de una línea completa
std::cin >> name lee una sola palabra. Para leer una línea con espacios, utilice std::getline.
std::string line;
std::getline(std::cin, line);
std::cout << "You said: " << line;Mezcla de >> y getline: un error común
Después de std::cin >> n, el salto de línea permanece en el búfer. El siguiente getline lee una cadena vacía. Borre primero el salto de línea.
int n;
std::cin >> n;
std::cin.ignore(); // consume the leftover newline
std::string line;
std::getline(std::cin, line);Estado del stream
Los streams tienen indicadores de estado: good, eof, fail y bad. Utilice if (std::cin) para comprobar que el stream todavía se puede utilizar después de la extracción.
Detección del EOF
El final del archivo se indica mediante Ctrl+D en Unix o Ctrl+Z en Windows. Ejecute el bucle mientras el stream sea válido para procesar toda la entrada.
int n;
while (std::cin >> n) {
std::cout << n * 2 << "\n";
}E/S más rápida para código competitivo
Desactive la sincronización con la E/S de C para acelerar las lecturas en programación competitiva. Desvincule también cin de cout.
std::ios_base::sync_with_stdio(false);
std::cin.tie(nullptr);std::endl frente a \n de nuevo
std::endl escribe un salto de línea y vacía el búfer. "\n" solo escribe el salto de línea. Utilice "\n" en los bucles para mantener un buen rendimiento.
Vaciado manual
Si necesita vaciar el búfer sin escribir un salto de línea, utilice std::flush. Resulta útil para los indicadores de progreso.
for (int i = 0; i < 100; ++i) {
std::cout << "\r" << i << "%" << std::flush;
// ... work ...
}Comprobación rápida
¿Cuál es la diferencia entre std::endl y "\n" en la salida?
Resumen
Utilice std::cout con << para imprimir y std::cin con >> para leer tokens. Para líneas completas, utilice std::getline y borre los saltos de línea sobrantes con cin.ignore() después de leer una entrada numérica.
Preguntas frecuentes
¿La lección «Uso adecuado de std::cin y std::cout» es gratis?
Sí — el texto completo de «Uso adecuado de std::cin y std::cout» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de C++ Academy, actualiza a CoddyKit PRO. El curso de C++ Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Uso adecuado de std::cin y std::cout»?
Realice operaciones de entrada y salida con los streams estándar y evite los errores habituales. Practicas C++ Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar C++ Academy?
No se requiere experiencia previa. C++ Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.
¿Cuánto tiempo toma la lección «Uso adecuado de std::cin y std::cout»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de C++ Academy?
Sí. Cada lección de C++ Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Uso adecuado de std::cin y std::cout
- Formateo de la salida con iomanip
- Lectura segura de la entrada con getline
- Trabajo con std::cerr y std::clog