Limitación "cin" de Turbo C: leer solo la primera palabra
En Turbo C, el operador de entrada "cin" tiene una limitación cuando se trata de matrices de caracteres. Específicamente, solo lee hasta que encuentra un carácter de espacio en blanco (por ejemplo, espacio o nueva línea). Esto puede provocar un comportamiento inesperado al intentar leer entradas de varias palabras.
Considere el siguiente código Turbo C:
#include
class String {
char str[100];
public:
void input() {
cout > str;
}
void display() {
cout Si ejecuta este código e ingresa la entrada "Steve Hawking", esperaría que el resultado muestre la cadena completa. Sin embargo, debido a la limitación de "cin", solo se muestra "Steve", porque "cin" deja de leerse en el primer carácter de espacio en blanco (espacio).
Superar la limitación
Para solucionar esta limitación, puede utilizar métodos alternativos para leer matrices de caracteres en Turbo C:
- cin.getline(str, sizeof str);
Este método lee una línea completa de entrada, incluidos los espacios en blanco, en la matriz de caracteres especificada. - std::getline(cin, str);
Si tienes acceso a la biblioteca estándar, puedes usar este método para leer una línea completa en un objeto de cadena, lo que ofrece más flexibilidad. - Implementa tu propia cadena clase:
Puedes definir tu propia clase de cadena que maneje la entrada y la salida de manera más eficiente.
Recomendación
El enfoque recomendado hoy en día es utilizar compiladores C modernos y la biblioteca estándar. Esto proporciona un manejo de entrada más confiable y eficiente, incluida la capacidad de leer líneas completas de entrada.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3