>  기사  >  백엔드 개발  >  C에서 파일의 전체 내용을 문자열로 효율적으로 읽으려면 어떻게 해야 합니까?

C에서 파일의 전체 내용을 문자열로 효율적으로 읽으려면 어떻게 해야 합니까?

Patricia Arquette
Patricia Arquette원래의
2024-10-27 06:45:29695검색

How can I efficiently read the entire contents of a file into a string in C  ?

C에서 파일 내용을 문자열로 효율적으로 읽기

C에서는 Perl과 같은 스크립트 언어와 달리 파일의 전체 내용을 읽습니다. 단일 작업으로 문자열로 변환하는 것은 직접 사용할 수 없습니다. 그러나 이 기능을 달성하는 효율적인 방법이 있습니다.

파일 내용을 문자열로 읽으려면 C의 파일 입력 처리 기능을 활용할 수 있습니다. 효율적인 솔루션은 다음과 같습니다.

<code class="cpp">#include <fstream>
#include <string>

int main(int argc, char** argv)
{
  std::ifstream ifs("myfile.txt");
  std::string content( (std::istreambuf_iterator<char>(ifs) ),
                       (std::istreambuf_iterator<char>()    ) );

  return 0;
}</code>

코드는 입력 파일 스트림을 사용하여 "myfile.txt"라는 파일의 내용을 읽고 이를 "content"라는 문자열 변수에 저장합니다. 파일 내용을 문자열에 할당하는 데 사용되는 표현식은 다음과 같습니다.

<code class="cpp">std::string content( (std::istreambuf_iterator<char>(ifs) ),
                   (std::istreambuf_iterator<char>()    ) );</code>

이 표현식은 반복기를 사용하여 입력 파일 스트림에서 문자별로 읽고 문자열을 구성합니다. 첫 번째 반복자는 입력 파일 스트림으로 초기화되고, 두 번째 반복자는 파일의 끝을 나타내는 기본 구성 "끝" 반복자입니다.

또는 다음 코드를 사용하여 값을 덮어쓸 수도 있습니다. 기존 문자열 변수:

<code class="cpp">std::string content;
content.assign( (std::istreambuf_iterator<char>(ifs) ),
                (std::istreambuf_iterator<char>()    ) );</code>

이 코드는 기존 문자열 변수 "content"의 값을 파일 내용으로 덮어씁니다.

위 내용은 C에서 파일의 전체 내용을 문자열로 효율적으로 읽으려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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