반응형
- 여기는 c++의 파일 오픈과 닫기를 사용해보는 문제
- C++에서는 파일을 열기 위해 fstream 헤더를 사용한며 infile은 ifstream, outfile은 ofstream을 사용한다.
#include <iostream>
#include <fstream>
int main(int argc, char **argv)
{
if (argc != 4)
return (std::cout << "argc is not four" << std::endl, 0);
std::string s1 = argv[2];
std::string s2 = argv[3];
std::string inFileName = argv[1];
std::string outFileName = inFileName + ".replace";
int len1 = s1.length();
int len2 = s2.length();
if (inFileName.length() == 0 || len1 == 0 || len2 == 0)
return (std::cout << "Arguments length is 0\\n", 0);
std::ifstream infile;
infile.open(inFileName.c_str());
std::ofstream outfile;
outfile.open(outFileName.c_str());
if (infile.fail() || outfile.fail())
return (std::cout << "Open Failed\\n", 0);
std::string line;
while (true)
{
std::getline(infile, line);
size_t pos = 0;
while (true)
{
pos = line.find(s1, pos);
if (pos == std::string::npos)
{
break ;
}
line.erase(pos, len1);
line.insert(pos, s2);
pos += len2;
}
outfile << line;
if (infile.eof())
break ;
outfile << std::endl;
}
infile.close();
outfile.close();
}
반응형
'42Seoul > CPP Module 01' 카테고리의 다른 글
ex06 (0) | 2023.12.02 |
---|---|
ex05(함수 포인터 배열) (0) | 2023.12.02 |
ex03 (0) | 2023.12.01 |
ex02 (0) | 2023.12.01 |
ex01(객체 포인터 배열 할당) (0) | 2023.12.01 |