> 백엔드 개발 > C++ > C에서 EOF까지 표준 입력의 모든 데이터를 읽는 방법은 무엇입니까?

C에서 EOF까지 표준 입력의 모든 데이터를 읽는 방법은 무엇입니까?

Barbara Streisand
풀어 주다: 2024-11-28 21:36:12
원래의
578명이 탐색했습니다.

How to Read All Data from Standard Input Until EOF in C  ?

C에서 파일 끝까지 표준 입력에서 데이터 읽기

C에서 사용자 입력에서 직접 데이터를 작업할 때 종종 파일 끝(EOF)에 도달할 때까지 모든 데이터를 읽는 것이 바람직합니다. cin.get() 함수를 사용하면 지정된 문자를 만날 때까지 데이터를 읽을 수 있습니다. 그러나 종료 문자로 ''를 사용하는 것은 실제로 EOF를 나타내지 않기 때문에 최적이 아닐 수 있습니다.

데이터 추출을 위해 루프 사용

가장 효과적인 솔루션 EOF까지 데이터를 읽으려면 루프를 사용해야 합니다. std::getline() 함수는 이러한 목적에 특히 적합합니다. 기본적으로 getline()은 개행 문자가 나타날 때까지 데이터를 읽습니다. 그러나 대체 종료 문자를 지정할 수 있습니다.

std::string line;
while (std::getline(std::cin, line))
{
    std::cout << line << std::endl;
}
로그인 후 복사

이 예에서 getline()은 파일 끝에 도달할 때까지 데이터의 각 줄을 읽습니다. getline()이 더 이상 데이터를 읽지 못하면 루프가 종료되어 EOF가 발견되었음을 나타냅니다.

대체 종료 문자

EOF는 EOF를 읽을 수 있는 문자는 아니지만 직접 지정하려면 sentinel 값을 사용하여 EOF를 나타낼 수 있습니다. 예를 들어, 변수를 특정 값으로 초기화하고 해당 값이 나타날 때까지 데이터를 읽을 수 있습니다.

const std::string EOF_MARKER = "EOF";
std::string line;
while (getline(std::cin, line))
{
    if (line == EOF_MARKER)
        break;

    std::cout << line << std::endl;
}
로그인 후 복사

이 접근 방식을 사용하면 고유한 파일 끝 표시기를 정의할 수 있어 더 큰 유연성을 제공할 수 있습니다. 데이터 처리.

위 내용은 C에서 EOF까지 표준 입력의 모든 데이터를 읽는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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