>백엔드 개발 >C++ >왜 `cin`은 사용자 입력의 첫 번째 단어만 읽나요?

왜 `cin`은 사용자 입력의 첫 번째 단어만 읽나요?

Patricia Arquette
Patricia Arquette원래의
2024-12-06 01:59:11557검색

Why Does `cin` Only Read the First Word of User Input?

cin을 사용하여 사용자로부터 전체 행 읽기

cin을 사용하여 사용자 입력의 전체 행을 읽으려고 할 때 , 개발자는 첫 번째 단어만 캡처되는 문제에 자주 직면합니다. 이 문제를 해결하려면 올바른 라인 추출 방법을 활용하는 것이 중요합니다.

주어진 C 코드에서 cin >> y; 사용자 입력을 수집합니다. 그러나 이 접근 방식은 첫 번째 공백 문자까지만 읽으므로 단일 단어만 캡처하게 됩니다.

입력의 전체 줄을 효과적으로 읽으려면 getline(cin, response) 사용으로 전환하세요. ;. 업데이트된 코드 버전은 다음과 같습니다.

#include <iostream>
#include <string>

using namespace std;

int main()
{
    char x;

    cout << "Would you like to write to a file?" << endl;
    cin >> x;
    if (x == 'y' || x == 'Y')
    {
        string response;
        cout << "What would you like to write." << endl;
        getline(cin, response); // Use getline instead of cin >>
        ofstream file;
        file.open("Characters.txt");
        file << strlen(response) << " Characters." << endl;
        file << endl;
        file << response;

        file.close();

        cout << "Done. \a" << endl;
    }
    else
    {
        cout << "K, Bye." << endl;
    }
}

getline을 활용하면 이제 전체 입력 줄을 효과적으로 캡처하여 단일 단어만 읽는 문제를 해결할 수 있습니다.

위 내용은 왜 `cin`은 사용자 입력의 첫 번째 단어만 읽나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.