<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mediawiki.zeropage.org/index.php?action=history&amp;feed=atom&amp;title=%EB%AC%B8%EC%9E%90%EB%B0%98%EB%8C%80%EC%B6%9C%EB%A0%A5%2F%EB%AC%B8%EB%B3%B4%EC%B0%BD</id>
	<title>문자반대출력/문보창 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mediawiki.zeropage.org/index.php?action=history&amp;feed=atom&amp;title=%EB%AC%B8%EC%9E%90%EB%B0%98%EB%8C%80%EC%B6%9C%EB%A0%A5%2F%EB%AC%B8%EB%B3%B4%EC%B0%BD"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=%EB%AC%B8%EC%9E%90%EB%B0%98%EB%8C%80%EC%B6%9C%EB%A0%A5/%EB%AC%B8%EB%B3%B4%EC%B0%BD&amp;action=history"/>
	<updated>2026-05-16T02:35:35Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.8</generator>
	<entry>
		<id>https://mediawiki.zeropage.org/index.php?title=%EB%AC%B8%EC%9E%90%EB%B0%98%EB%8C%80%EC%B6%9C%EB%A0%A5/%EB%AC%B8%EB%B3%B4%EC%B0%BD&amp;diff=50493&amp;oldid=prev</id>
		<title>imported&gt;Unknown at 05:29, 7 February 2021</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=%EB%AC%B8%EC%9E%90%EB%B0%98%EB%8C%80%EC%B6%9C%EB%A0%A5/%EB%AC%B8%EB%B3%B4%EC%B0%BD&amp;diff=50493&amp;oldid=prev"/>
		<updated>2021-02-07T05:29:29Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;=== 소감 ===&lt;br /&gt;
음 만약에 한글과 같은 확장문자가 담겼다면 process_wchar() 함수에서 약간의 꼼수를 부린다. 가상의 예(실제로 이렇게 되지는 않지만, 원리는 같음)를 들어보자. &amp;quot;가나&amp;quot; 라는 문자열을 ver1과 같은 통상의 프로그램으로 뒤집으면 &amp;quot;나가&amp;quot;와 같이 프로그래머가 원했던 결과가 나오는 것이 아니고 &amp;quot;ㅏㄴㅏㄱ&amp;quot;가 나온다. 그렇다면 확장문자를 판단해서 문자열을 뒤집기 전에 &amp;quot;가나&amp;quot;라는 문자열을 &amp;quot;ㅏㄱㅏㄴ&amp;quot; 이렇게 만들어 놓는다면 기존 ver1의 프로세스를 전혀 바꾸지 않고도, process_wchar()만을 추가하는 것으로 원했던 기능을 모두 수행하게 된다.&lt;br /&gt;
&lt;br /&gt;
=== 코드 ===&lt;br /&gt;
==== ver1 (확장 문자 지원 안함) ====&lt;br /&gt;
 #include &amp;amp;lt;fstream&amp;amp;gt;&lt;br /&gt;
 #include &amp;amp;lt;algorithm&amp;amp;gt;&lt;br /&gt;
 #include &amp;amp;lt;string&amp;amp;gt;&lt;br /&gt;
 using namespace std;&lt;br /&gt;
 &lt;br /&gt;
 string read_file();&lt;br /&gt;
 void write_file(const string &amp;amp;amp; str);&lt;br /&gt;
 &lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
 	string str = read_file();&lt;br /&gt;
 	reverse(str.begin(), str.end()); // 문자열을 거꾸로 해주는 STL 함수&lt;br /&gt;
 	 write_file(str);&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 // 파일로부터 문자열을 읽어들인다.&lt;br /&gt;
 string read_file()&lt;br /&gt;
 {&lt;br /&gt;
 	string str;&lt;br /&gt;
 	fstream fin(&amp;quot;source.txt&amp;quot;);&lt;br /&gt;
 	char ch = fin.get();&lt;br /&gt;
 	while (ch != EOF)&lt;br /&gt;
 	{&lt;br /&gt;
 		str += ch;&lt;br /&gt;
 		ch = fin.get();&lt;br /&gt;
 	}&lt;br /&gt;
 	return str;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 // 파일에 문자열을 쓴다.&lt;br /&gt;
 void write_file(const string &amp;amp;amp; str)&lt;br /&gt;
 {&lt;br /&gt;
 	fstream fout(&amp;quot;result.txt&amp;quot;);&lt;br /&gt;
 	fout &amp;amp;lt;&amp;amp;lt; str;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== ver2 (확장문자까지 판단해서 반대로 한다) ====&lt;br /&gt;
 #include &amp;amp;lt;fstream&amp;amp;gt;&lt;br /&gt;
 #include &amp;amp;lt;algorithm&amp;amp;gt;&lt;br /&gt;
 #include &amp;amp;lt;string&amp;amp;gt;&lt;br /&gt;
 using namespace std;&lt;br /&gt;
 &lt;br /&gt;
 string read_file();&lt;br /&gt;
 void write_file(const string &amp;amp;amp; str);&lt;br /&gt;
 void process_wchar(string &amp;amp;amp; str);&lt;br /&gt;
 &lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
 	string str = read_file();&lt;br /&gt;
 	process_wchar(str);&lt;br /&gt;
 	reverse(str.begin(), str.end());  // 문자열을 거꾸로 해주는 STL 함수&lt;br /&gt;
 	 write_file(str);&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 // 확장문자를 위한 전처리 함수&lt;br /&gt;
 void process_wchar(string &amp;amp;amp; str)&lt;br /&gt;
 {&lt;br /&gt;
 	// str[i]는 char. 하지만 이것이 확장문자의 일부라면 음수가 담기게 된다.&lt;br /&gt;
 	for (int i = 0; i &amp;amp;lt; str.length(); i++)&lt;br /&gt;
 	{&lt;br /&gt;
 		if (str[i] &amp;amp;lt; 0 &amp;amp;amp;&amp;amp;amp; str[i + 1] &amp;amp;lt; 0)&lt;br /&gt;
 		{&lt;br /&gt;
 			swap(str[i], str[i+1]);&lt;br /&gt;
 			i++;&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 // 파일로부터 문자열을 읽어들인다.&lt;br /&gt;
 string read_file()&lt;br /&gt;
 {&lt;br /&gt;
 	string str;&lt;br /&gt;
 	fstream fin(&amp;quot;source.txt&amp;quot;);&lt;br /&gt;
 	char ch = fin.get();&lt;br /&gt;
 	while (ch != EOF)&lt;br /&gt;
 	{&lt;br /&gt;
 		str += ch;&lt;br /&gt;
 		ch = fin.get();&lt;br /&gt;
 	}&lt;br /&gt;
 	return str;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 // 파일에 문자열을 쓴다.&lt;br /&gt;
 void write_file(const string &amp;amp;amp; str)&lt;br /&gt;
 {&lt;br /&gt;
 	fstream fout(&amp;quot;result.txt&amp;quot;);&lt;br /&gt;
 	fout &amp;amp;lt;&amp;amp;lt; str;&lt;br /&gt;
 }&lt;br /&gt;
=== 나한테 할말 ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[문자반대출력]] [[LittleAOI]]&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>imported&gt;Unknown</name></author>
	</entry>
</feed>