
Estoy experimentando un problema extraño al escribir código C++ en Xcode en una MacBook. Sé que el código no es defectuoso ya que algunos usuarios de Windows lo han ejecutado sin ningún problema, pero de alguna manera el resultado que obtengo no coincide con la entrada la mayor parte del tiempo. Intenté reinstalar Xcode sin éxito. Aquí está el código que estoy ejecutando:
#include <string>
#include <iostream>
int main() {
std::string test = "";
while (std::cin >> test) {
std::cout << test << "\n";
}
return 0;
}
Estoy usando la consola desde Xcode para brindar información al usuario, aquí hay algunos ejemplos del resultado que obtengo:
Entrada: 1+(2+2)
Salida: 1+()2+2
Entrada: 2*(-(8/2))
Salida: 2*()()-8/2
Comentario: Los cuadros muestran algún tipo de símbolo de signo de interrogación, aunque parece que no se mostrarán cuando se peguen aquí.
Cualquier ayuda sería muy apreciada.
Respuesta1
Su comentario sobre las teclas del cursor aclaró el problema.
Normalmente, las bibliotecas stdio de tiempo de ejecución de C/C++ dependen de la implementación del terminal del sistema para manejar teclas especiales como cursores, de modo que el programa reciba la llamada entrada de terminal "preparada", donde se filtran todas las rarezas.
Desafortunadamente, la ventana de la Consola dentro de XCode no es una terminal adecuada y aparecen algunas cosas.
Esto es algo específico de XCode y su ventana de Consola. No debería suceder cuando el programa compilado se ejecuta desde una ventana de Terminal normal. Al presionar los cursores allí se generarán algunos caracteres extraños en la pantalla, pero no llegarán a std::cin.