C++로 파일 만들기
-
std::fstream
,std::open
및std::ios_base::out
을 사용하여 C++로 파일 만들기 -
std::fstream
,std::open
및std::ios_base::app
을 사용하여 C++로 파일 만들기 -
std::fstream
및fopen
함수를 사용하여 C++로 파일 만들기
이 기사에서는 C++로 파일을 만드는 방법에 대한 몇 가지 방법을 설명합니다.
std::fstream
,std::open
및std::ios_base::out
을 사용하여 C++로 파일 만들기
파일 생성은 일반적으로 파일 열기 작업에 연결되며, 그 자체로 파일 스트림 구조를 디스크의 해당 실제 파일에 연결하는 작업입니다. 일반적으로 파일 생성 작업은 프로그램이 파일을 여는 모드에 따라 다릅니다. 쓰기 전용 모드, 읽기 전용 모드, 추가 모드 등과 같이 파일을 여는 여러 모드가 있습니다. 일반적으로 파일 쓰기를 수반하는 모든 모드는 주어진 파일 이름이 존재하지 않는 경우 새 파일을 만드는 것을 의미합니다. 따라서std::fstream
의open
내장 함수를 호출하여 첫 번째string
인수로 제공된 이름으로 새 파일을 만들어야합니다. open
의 두 번째 인수는 파일 스트림을 여는 모드를 지정하며 이러한 모드는 언어에 의해 미리 정의됩니다 (페이지 참조).
++ cCopy#include <fstream>
#include <iostream>
using std::cerr;
using std::cout;
using std::endl;
using std::fstream;
using std::ofstream;
using std::string;
int main() {
string filename("output.txt");
fstream output_fstream;
output_fstream.open(filename, std::ios_base::out);
if (!output_fstream.is_open()) {
cerr << "Failed to open " << filename << '\n';
} else {
output_fstream << "Maecenas accumsan purus id \norci gravida pellentesque."
<< endl;
cerr << "Done Writing!" << endl;
}
return EXIT_SUCCESS;
}
출력:
textCopyDone Writing!
std::fstream
,std::open
및std::ios_base::app
을 사용하여 C++로 파일 만들기
또는std::ios_base::app
로 표시된 추가 모드에서 파일을 열고 각 쓰기시 스트림이 파일 끝에 위치하도록 강제 할 수 있습니다. 이 모드는 주어진 경로에 존재하지 않는 경우 새 파일을 생성한다고 가정합니다. 성공적으로 열린 파일 스트림은 스트림이 연결될 때true
를 반환하는is_open
함수로 확인할 수 있습니다.
++ cCopy#include <fstream>
#include <iostream>
using std::cerr;
using std::cout;
using std::endl;
using std::fstream;
using std::ofstream;
using std::string;
int main() {
string text("Large text stored as a string\n");
string filename2("output2.txt");
fstream outfile;
outfile.open(filename2, std::ios_base::app);
if (!outfile.is_open()) {
cerr << "failed to open " << filename2 << '\n';
} else {
outfile.write(text.data(), text.size());
cerr << "Done Writing!" << endl;
}
return EXIT_SUCCESS;
}
출력:
textCopyDone Writing!
std::fstream
및fopen
함수를 사용하여 C++로 파일 만들기
파일을 생성하는 또 다른 옵션은FILE*
구조를 반환하는 C 표준 라이브러리 인터페이스fopen
을 사용하는 것입니다. 이 함수는 열 파일 경로 이름을 지정하는 문자열과 열 모드를 나타내는 다른 문자열 리터럴의 두 가지 인수를 사용합니다. 여섯 가지 공통 모드가 정의됩니다.r
-스트림이 시작 부분에있을 때 읽기 전용,w
-쓰기 전용-시작 부분에,a
-쓰기 전용 (추가)-마지막에 위치 파일 및 반대 모드를 추가로 포함하는r+
,w+
,a+
세 가지의 플러스 버전.
++ cCopy#include <fstream>
#include <iostream>
using std::cerr;
using std::cout;
using std::endl;
using std::fstream;
using std::ofstream;
using std::string;
int main() {
string text("Large text stored as a string\n");
fstream outfile;
string filename3("output3.txt");
FILE *o_file = fopen(filename3.c_str(), "w+");
if (o_file) {
fwrite(text.c_str(), 1, text.size(), o_file);
cerr << "Done Writing!" << endl;
}
return EXIT_SUCCESS;
}
출력:
textCopyDone Writing!
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