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 중국어 웹사이트의 기타 관련 기사를 참조하세요!