다양한 줄바꿈 엔딩을 우아하게 처리하기 위해 std :: ifstream 가져오기
소개
작업할 때 C의 텍스트 파일에서는 다양한 개행 인코딩을 적절하게 처리하는 것이 중요합니다. 이 기사에서는 다양한 줄 바꿈 문자를 처리하기 위한 표준 C 메커니즘과 모범 사례를 살펴보고 포괄적인 솔루션을 제공합니다.
도전 과제: 일관되지 않은 줄 바꿈 끝
특히 이 질문은 우려를 불러일으켰습니다. istream&의 동작 getline( istream& is, string& str ); 다양한 개행 인코딩을 만날 때. 목표는 다양한 텍스트 파일 형식과의 호환성을 보장하면서 사용자에게 불편한 수정을 방지하는 것입니다.
표준 C 제한 사항
C 런타임은 이론적으로 플랫폼별 줄 바꿈을 처리해야 하지만 규칙에 따라 크로스 플랫폼 데이터 교환에는 신뢰할 수 없습니다. 따라서 더욱 강력한 솔루션이 필요합니다.
사용자 정의 솔루션: safeGetline() 함수
이 문제를 해결하기 위해 safeGetline()이라는 사용자 정의 함수가 도입되었습니다.
std::istream& safeGetline(std::istream& is, std::string& t) { t.clear(); // ... Implementation omitted for brevity ... return is; }
이 함수는 입력 스트림에서 문자를 반복적으로 읽고 세 가지 일반적인 개행 인코딩("r", "n" 및 "rn")에 따라 달라집니다. 또한 빈 줄이 올바르게 처리되는지 확인합니다.
테스트 프로그램
safeGetline() 함수의 기능을 시연하기 위해 테스트 프로그램이 제공됩니다.
int main() { // ... Implementation omitted for brevity ... int n = 0; std::string t; while(!safeGetline(ifs, t).eof()) ++n; std::cout << "The file contains " << n << " lines." << std::endl; return EXIT_SUCCESS; }
이 프로그램은 텍스트 파일을 읽고 줄 수를 세면서 모든 줄 바꿈을 우아하게 처리합니다. 인코딩.
결론
safeGetline() 함수는 C 입력 스트림의 다양한 개행 끝을 처리하기 위한 강력한 솔루션을 제공합니다. 이를 통해 개발자는 다양한 텍스트 파일 형식 및 플랫폼과 호환되는 코드를 작성할 수 있어 사용자의 불편을 최소화하고 데이터의 올바른 처리를 보장합니다.
위 내용은 내 C 코드가 텍스트 파일의 다양한 개행 끝을 강력하게 처리하도록 하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!