문자열을 입력으로 사용하여 특정 방식으로 조작하는 C++ 프로그램을 만들고 있습니다.입력 된 문자열 대신에 이상한 문자가 나타나는 경우
string input;
cin >> input;
char arg = input[4]; //All inputs always have 5 characters
cout << arg << endl;
입력 : :이 코드 추가 D
내가 화면에 D를 인쇄 할을 기다리고 있었다 대신 아무것도 Y처럼 (다른 입력, 나는 가끔 이상한 문자를 얻을, 또한 을 인쇄되지 않습니다 그 위에 두 개의 점이 있음)을 출력으로 표시합니다.
왜 이런 일이 발생하며 어떻게 수정 될 수 있습니까? input
의 값이 다음, char arg = input[4];
add
될 정도로 std::string
operator<< 대한 추출이 공백
마음이 (가) [MCVE]가 그 문제를하시기 바랍니다 재현 게시하려면? –
오타를 수정 한 후 모든 것이 의도 한대로 작동합니다 (http://ideone.com/E2iBWf). –
"모든 입력은 항상 5 자입니다."라는 주석에 썼습니다. 실제로 'add d'에는 3 자만 있습니다 (첫 번째 토큰을보십시오). – Brandin