Xcode 콘솔 입력이 출력 C++와 일치하지 않습니다.

Xcode 콘솔 입력이 출력 C++와 일치하지 않습니다.

MacBook의 Xcode에서 C++ 코드를 작성하는 데 이상한 문제가 발생했습니다. Windows 사용자가 전혀 문제 없이 코드를 실행하도록 했기 때문에 코드에 결함이 없다는 것을 알고 있지만, 어쨌든 내가 얻는 출력은 대부분의 경우 입력과 일치하지 않습니다. Xcode를 다시 설치하려고 했지만 소용이 없었습니다. 내가 실행 중인 코드는 다음과 같습니다.

#include <string>
#include <iostream>


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

저는 사용자 입력을 제공하기 위해 Xcode 내에서 콘솔을 사용하고 있습니다. 다음은 제가 얻은 출력의 몇 가지 예입니다.

입력: 1+(2+2)

출력: 1+()2+2

입력: 2*(-(8/2))

출력: 2*()()-8/2

설명: 상자에는 일부 유형의 물음표 기호가 표시되지만 여기에 붙여넣으면 표시되지 않는 것처럼 보입니다.

어떤 도움이라도 대단히 감사하겠습니다.

답변1

커서 키에 관한 귀하의 의견으로 문제가 명확해졌습니다.
일반적으로 C/C++ 런타임 stdio 라이브러리는 커서와 같은 특수 키를 처리하기 위해 시스템의 터미널 구현에 의존하므로 프로그램은 소위 "요리된" 터미널 입력을 수신하여 모든 이상한 점이 필터링됩니다.
불행하게도 XCode 내부의 콘솔 창은 적절한 터미널이 아니며 일부 문제가 발생합니다.
이는 XCode 및 해당 콘솔 창과 관련된 것입니다. 컴파일된 프로그램이 일반 터미널 창에서 실행될 때는 이런 일이 발생해서는 안 됩니다. 커서를 누르면 화면에 이상한 문자가 생성되지만 std::cin에는 도착하지 않습니다.

관련 정보