~cpp
#include <fstream>
#include <algorithm>
#include <string>
using namespace std;
string read_file();
void write_file(const string & str);
void main()
{
string str = read_file();
reverse(str.begin(), str.end()); // 문자열을 거꾸로 해주는 STL 함수
write_file(str);
}
// 파일로부터 문자열을 읽어들인다.
string read_file()
{
string str;
fstream fin("source.txt");
char ch = fin.get();
while (ch != EOF)
{
str += ch;
ch = fin.get();
}
return str;
}
// 파일에 문자열을 쓴다.
void write_file(const string & str)
{
fstream fout("result.txt");
fout << str;
}
~cpp
#include <fstream>
#include <algorithm>
#include <string>
using namespace std;
string read_file();
void write_file(const string & str);
void process_wchar(string & str);
void main()
{
string str = read_file();
process_wchar(str);
reverse(str.begin(), str.end()); // 문자열을 거꾸로 해주는 STL 함수
write_file(str);
}
// 확장문자를 위한 전처리 함수
void process_wchar(string & str)
{
// str[i]는 char. 하지만 이것이 확장문자의 일부라면 음수가 담기게 된다.
for (int i = 0; i < str.length(); i++)
{
if (str[i] < 0 && str[i + 1] < 0)
{
swap(str[i], str[i+1]);
i++;
}
}
}
// 파일로부터 문자열을 읽어들인다.
string read_file()
{
string str;
fstream fin("source.txt");
char ch = fin.get();
while (ch != EOF)
{
str += ch;
ch = fin.get();
}
return str;
}
// 파일에 문자열을 쓴다.
void write_file(const string & str)
{
fstream fout("result.txt");
fout << str;
}