>백엔드 개발 >C++ >파일을 생성할 때 `std::fstream::open()`에서 \'No Such File or Directory\' 오류가 발생하는 이유는 무엇입니까?

파일을 생성할 때 `std::fstream::open()`에서 \'No Such File or Directory\' 오류가 발생하는 이유는 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-01 04:22:27404검색

Why Does `std::fstream::open()` Throw a

std::fstream의 파일 생성 문제

질문:

std를 활용하는 경우: :fstream 파일 I/O용, 파일이 아직 존재하지 않는 경우 파일을 생성하려고 시도하는 동안 "해당 파일이나 디렉터리가 없습니다"라는 오류 메시지가 나타납니다. 특히 아래 코드 조각이 문제를 일으키고 있습니다.

<code class="cpp">std::fstream my_stream;
my_stream.open("my_file_name", std::fstream::binary | std::fstream::in | std::fstream::out);
if (!my_stream)
    std::cout << "error" << strerror(errorno);</code>

필요할 때 파일을 생성하려면 이 문제를 어떻게 해결해야 합니까?

답변:

모드 인수에 std::fstream::in이 지정된 경우 fstream::open() 함수에는 존재하지 않는 파일이 필요합니다. 문제를 해결하려면 모드 플래그에서 std::fstream::in을 제거하거나 기존 플래그와 함께 std::fstream::trunc를 추가하세요.

<code class="cpp">// Remove std::fstream::in
std::fstream my_stream;
my_stream.open("my_file_name", std::fstream::binary | std::fstream::out);

// Add std::fstream::trunc
std::fstream my_stream;
my_stream.open("my_file_name", std::fstream::binary | std::fstream::in | std::fstream::out | std::fstream::trunc);</code>

위 내용은 파일을 생성할 때 `std::fstream::open()`에서 \'No Such File or Directory\' 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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