C++에서 파일에 텍스트를 추가하는 방법
-
std::ofstream
및open()
메서드를 사용하여 파일에 텍스트 추가 -
std::fstream
및open()
메서드를 사용하여 파일에 텍스트 추가 -
std::fstream
및open()
과 함께write()
메서드를 사용하여 파일에 텍스트 추가
이 기사에서는 파일에 텍스트를 추가하는 여러 C++ 메서드를 소개합니다.
std::ofstream
및 open()
메서드를 사용하여 파일에 텍스트 추가
먼저 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::fstream
및 open()
메서드를 사용하여 파일에 텍스트 추가
또는 읽기 및 쓰기/추가를 위해 주어진 파일을 여는 옵션을 제공하는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::fstream
및 open()
과 함께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;
}
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