A entrada do console Xcode não corresponde à saída C++

A entrada do console Xcode não corresponde à saída C++

Estou tendo um problema estranho ao escrever código C++ no Xcode em um MacBook. Eu sei que o código não está com defeito, pois os usuários do Windows o executaram sem nenhum problema, mas de alguma forma a saída que recebo não corresponde à entrada na maioria das vezes. Tentei reinstalar o Xcode sem sucesso. Aqui está o código que estou executando:

#include <string>
#include <iostream>


int main() {
    std::string test = "";
    while (std::cin >> test) {
        std::cout << test << "\n";
    }
    return 0;
}

Estou usando o console do Xcode para fornecer informações do usuário. Aqui estão alguns exemplos da saída que recebo:

Entrada: 1+(2+2)

Saída: 1+()2+2

Entrada: 2*(-(8/2))

Saída: 2*()()-8/2

Comentário: As caixas exibem algum tipo de símbolo de ponto de interrogação, mas parece que não será exibido quando colado aqui.

Qualquer ajuda seria muito apreciada.

Responder1

Seu comentário sobre as teclas do cursor esclareceu o problema.
Normalmente, as bibliotecas stdio de tempo de execução C/C++ dependem da implementação do terminal do sistema para lidar com chaves especiais como cursores, para que o programa receba a chamada entrada de terminal "preparada", onde todas as estranhezas são filtradas.
Infelizmente, a janela do console dentro do XCode não é um terminal adequado e algumas coisas acontecem.
Isso é algo específico do XCode e sua janela do console. Isso não deveria acontecer quando o programa compilado é executado em uma janela normal do Terminal. Pressionar os cursores irá gerar alguns caracteres estranhos na tela, mas eles não chegarão em std::cin.

informação relacionada