C++에서 파일에 텍스트를 추가하는 방법

Jinku Hu 2023년10월12일
  1. std::ofstreamopen()메서드를 사용하여 파일에 텍스트 추가
  2. std::fstreamopen()메서드를 사용하여 파일에 텍스트 추가
  3. std::fstreamopen()과 함께write()메서드를 사용하여 파일에 텍스트 추가
C++에서 파일에 텍스트를 추가하는 방법

이 기사에서는 파일에 텍스트를 추가하는 여러 C++ 메서드를 소개합니다.

std::ofstreamopen()메서드를 사용하여 파일에 텍스트 추가

먼저 ofstream 객체를 생성 한 다음 그 멤버 함수 open을 호출해야합니다. 이 메소드는 파일 이름을 첫 번째 인수의문자열객체로 사용합니다. 두 번째 인수로 다음 표에 표시된 사전 정의 된 상수 값을 지정하여 개방 모드를 전달할 수 있습니다.

일정한 설명
std::ios_base::app 각 쓰기 전에 스트림의 끝을 찾습니다.
std::ios_base::binary 바이너리 모드로 열기
std::ios_base::in 독서를 위해 열다
std::ios_base::out 쓰기 위해 열기
std::ios_base::trunc 열 때 스트림의 내용을 버립니다
std::ios_base::ate 개봉 후 즉시 스트림 끝까지 탐색

다음 코드 샘플은 현재 작업 디렉토리에tmp.txt라는 파일을 생성합니다. 파일의 전체 경로를 전달하여 다른 위치에 만들거나 추가 할 수 있습니다.

#include <fstream>
#include <iostream>

using std::cout;
using std::endl;
using std::ofstream;
using std::string;

int main() {
  string filename("tmp.txt");
  ofstream file_out;

  file_out.open(filename, std::ios_base::app);
  file_out << "Some random text to append." << endl;
  cout << "Done !" << endl;

  return EXIT_SUCCESS;
}

출력:

Done !

std::fstreamopen()메서드를 사용하여 파일에 텍스트 추가

또는 읽기 및 쓰기/추가를 위해 주어진 파일을 여는 옵션을 제공하는fstream을 사용하여 이전 예제를 구현할 수 있습니다. 이 방법은 파일 스트림을 조작하는 보편적 인 방법입니다. 또한 스트림이 지정된 파일과 연결되어 있는지 확인하는 is_open 호출이있는 문에 유효성 검사를 추가했습니다.

#include <fstream>
#include <iostream>

using std::cout;
using std::endl;
using std::fstream;
using std::string;

int main() {
  string filename("tmp.txt");
  fstream file;

  file.open(filename, std::ios_base::app | std::ios_base::in);
  if (file.is_open()) file << "Some random text to append." << endl;
  cout << "Done !" << endl;

  return EXIT_SUCCESS;
}

std::fstreamopen()과 함께write()메서드를 사용하여 파일에 텍스트 추가

이 문제를 해결하는 또 다른 방법은 이전 예제에서했던 것처럼<<연산자를 사용하는 대신fstream 객체에서 명시 적으로write 멤버 함수를 호출하는 것입니다. 이 방법은 대부분의 시나리오에서 더 빠르지 만 엄격한 성능 요구 사항이있는 경우 항상 코드를 프로파일 링하고 타이밍을 비교합니다.

#include <fstream>
#include <iostream>

using std::cout;
using std::endl;
using std::fstream;
using std::string;

int main() {
  string text("Some huge text to be appended");
  string filename("tmp.txt");
  fstream file;

  file.open(filename, std::ios_base::app);
  if (file.is_open()) file.write(text.data(), text.size());
  cout << "Done !" << endl;

  return EXIT_SUCCESS;
}
작가: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook

관련 문장 - C++ File