> 백엔드 개발 > C++ > C \의 `cin`을 사용하여 공백을 포함한 전체 입력 줄을 읽는 방법은 무엇입니까?

C \의 `cin`을 사용하여 공백을 포함한 전체 입력 줄을 읽는 방법은 무엇입니까?

Patricia Arquette
풀어 주다: 2024-10-29 07:49:02
원래의
713명이 탐색했습니다.

How to Read Entire Lines of Input Including Spaces with C  's `cin`?

C "cin"은 첫 번째 단어만 읽습니다

C에서 입력 스트림 연산자 >> 일반적으로 키보드와 같은 입력 소스에서 단일 단어를 읽습니다. 첫 번째 단어만 캡처되므로 공백이 포함된 문자열을 읽으려고 할 때 문제가 될 수 있습니다. 이 문제는 문자 배열 작업 중에 발생할 수 있습니다.

다음 코드를 고려하십시오.

<code class="c++">#include <iostream.h>
#include <conio.h>

class String
{
    char str[100];
    public:
    void input()
    {
        cout << "Enter string :";
        cin >> str;
    }

    void display()
    {
        cout << str;
    }
};

int main()
{
     String s;
     s.input();
     s.display();
     return 0;
}
로그인 후 복사

Turbo C 4.5에서 이 코드를 실행하면 문자열의 첫 번째 단어만 표시됩니다. 그 이유는 cin>> str은 str 문자 배열에서 한 단어만 읽습니다. 공백을 포함하여 전체 입력 줄을 읽으려면 대체 접근 방식이 필요합니다.

한 가지 옵션은 getline() 함수를 사용하는 것입니다.

<code class="c++">#include <iostream>
#include <string>

using namespace std;

int main()
{
    string s;
    cout << "Enter string :";
    getline(cin, s);
    cout << s;
    return 0;
}</code>
로그인 후 복사

이 코드는 전체 줄을 읽습니다. 공백을 포함한 입력을 s 문자열에 입력합니다. getline()을 사용하여 문자 배열을 읽을 수도 있습니다.

<code class="c++">#include <iostream.h>
#include <conio.h>

int main()
{
    char str[100];
    cout << "Enter string :";
    cin.getline(str, sizeof str);
    cout << str;
    return 0;
}
로그인 후 복사

또는 >> 연산자를 사용하면 다음과 같이 코드를 수정할 수 있습니다.

<code class="c++">#include <iostream.h>
#include <conio.h>

class String
{
    char str[100];
    public:
    void input()
    {
        cout << "Enter string :";
        cin.getline(str, sizeof str);
    }

    void display()
    {
        cout << str;
    }
};

int main()
{
     String s;
     s.input();
     s.display();
     return 0;
}</code>
로그인 후 복사

이러한 수정을 통해 코드는 전체 입력 문자열을 올바르게 읽고 표시합니다.

위 내용은 C \의 `cin`을 사용하여 공백을 포함한 전체 입력 줄을 읽는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿