{"id":3847,"date":"2017-01-30T21:45:37","date_gmt":"2017-01-30T12:45:37","guid":{"rendered":"http:\/\/www.gisdeveloper.co.kr\/?p=3847"},"modified":"2020-05-28T16:06:55","modified_gmt":"2020-05-28T07:06:55","slug":"c-stream%ec%9d%84-%ec%9d%b4%ec%9a%a9%ed%95%9c-typed-binary-%eb%8d%b0%ec%9d%b4%ed%84%b0-%ec%9d%bd%ea%b3%a0-%ec%93%b0%ea%b8%b0","status":"publish","type":"post","link":"http:\/\/www.gisdeveloper.co.kr\/?p=3847","title":{"rendered":"[C++] Stream\uc744 \uc774\uc6a9\ud55c Typed Binary \ub370\uc774\ud130 \uc77d\uace0 \uc4f0\uae30"},"content":{"rendered":"<p>C++\uc740 stream\uc744 \ud1b5\ud574 \ubc18\ubcf5\uc790(iterator)\ub97c \uc774\uc6a9\ud574 \ub370\uc774\ud130\ub97c\u00a0 \ub9e4\uc6b0 \uc720\uc5f0\ud558\uac8c \ucc98\ub9ac \ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \uc2a4\ud2b8\ub9bc\uc744 \ud1b5\ud574 \ub370\uc774\ud130\uc758 \uc785\ub825\uc744 \ud0a4\ubcf4\ub4dc\ub098 \ud30c\uc77c \ub4f1\uc744 \ud1b5\ud574 \ub9e4\uc6b0 \uc720\uc5f0\ud558\uace0 \ud6a8\uacfc\uc801\uc73c\ub85c \uc77d\uace0 \uc4f8 \uc218 \uc788\ub294\ub370\uc694. \ubb38\uc81c\ub294 \uc77c\ubc18\ud654\ub41c \ubb38\uc790\uc5f4\uc5d0 \ub300\ud55c \uc77d\uace0 \uc4f0\uae30\uc5d0 \uc911\uc2ec\uc744 \ub450\uace0 \uc788\ub2e4\ub294 \uc810\uc785\ub2c8\ub2e4.\u00a0 \uc989,\u00a0 C++\uc758 \uc2a4\ud2b8\ub9bc\uc744 \uc774\uc6a9\ud574 \uc2e4\uc218 \ud0c0\uc785\uc758 \uac12\uc73c\ub85c 3.14159265\ub77c\ub294 \uac12\uc744 \ud30c\uc77c\uc5d0 \uc800\uc7a5\ud558\uace0\uc790 \ud55c\ub2e4\uba74, \uc774 \uac12\uc744 \uba54\ubaa8\ub9ac\uc5d0 \uc800\uc7a5\ub41c \uadf8\ub300\ub85c\uc758\u00a0\uc2e4\uc218\ud615\u00a0\ubc14\uc774\ub108\ub9ac \ud615\uc2dd\uc73c\ub85c\uc758 \uc800\uc7a5\uc774 \uc544\ub2cc &#8220;3.14159265&#8221;\ub77c\ub294 \ubb38\uc790\uc5f4\ub85c \uc800\uc7a5\ub418\ub294 \uac83\uc774\u00a0C++ \uac1c\ubc1c\uc790\uc5d0\uac8c \ud754\ud788 \ub178\ucd9c\ub41c \ubc29\uc2dd\uc774\ub77c\ub294 \uac83\uc785\ub2c8\ub2e4.<\/p>\n<p>\ub2e4 \uc774\uc720\uac00 \uc788\uaca0\uc73c\ub098, \ud544\uc790\ub294 \uc774 \uc2e4\uc218\ud615 \uac12\uc744 \uba54\ubaa8\ub9ac\uc5d0 \uc800\uc7a5\ub41c \uadf8\ub300\ub85c\uc758 \uc2e4\uc218\ud615 \ubc14\uc774\ub108\ub9ac \ud615\uc2dd\uc73c\ub85c \ud30c\uc77c\uc5d0 \uc800\uc7a5\ud558\uace0, \uc774\ub807\uac8c \uc800\uc7a5\ub41c \uac12\uc744 \ub2e4\uc2dc \ud30c\uc77c\uc744 \uc5f4\uc5b4 \uaebc\ub0b4\uc640 \ud654\uba74\uc5d0 \ud45c\uc2dc\ud558\uace0\uc790 \ud569\ub2c8\ub2e4.<\/p>\n<p>\uba3c\uc800 3.14159265 \uac12\uc744 d \ub4dc\ub77c\uc774\ube0c\uc758 data.bin\uc5d0 \uc800\uc7a5\ud558\ub294 \ucf54\ub4dc\uc785\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"cpp\">\r\n#include &lt;iostream>\r\n#include &lt;fstream>\r\n\r\nint main()\r\n{\r\n\tstd::ofstream os(\"d:\\\\data.bin\", std::ios::binary);\r\n\r\n\tdouble v = 3.141592625;\r\n\tos.write(reinterpret_cast&lt;const char*>(&v), sizeof(double));\r\n\r\n\tos.close();\r\n}\r\n<\/pre>\n<p>\uc2e4\ud589\ud574 \ubcf4\uba74 data.bin \ud30c\uc77c\uc774 \uc0dd\uc131\ub418\uc5b4\uc84c\uace0, \ud30c\uc77c \ud06c\uae30\ub294 double\uc758 \ubc14\uc774\ud2b8 \ud06c\uae30\uc640 \ub3d9\uc77c\ud55c 8\ubc14\uc774\ud2b8\uc778 \uac83\uc744 \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/www.gisdeveloper.co.kr\/wp-content\/uploads\/2017\/01\/data_bin.png\" alt=\"\" width=\"500\" class=\"aligncenter\" \/><\/p>\n<p>\uc774\uc81c \uc774\ub807\uac8c \uc0dd\uc131\ub41c \ud30c\uc77c\uc5d0\uc11c \ub2e4\uc2dc \uc2e4\uc218\ud615 \uac12\uc744 \uc77d\uc5b4 \ubcf4\ub294 \ucf54\ub4dc\ub294 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"cpp\">\r\n#include &lt;iostream>\r\n#include &lt;fstream>\r\n\r\nint main()\r\n{\r\n\tstd::ifstream is(\"d:\\\\data.bin\", std::ios::binary);\r\n\r\n\tdouble v2;\r\n\tis.read(reinterpret_cast&lt;char*>(&v2), sizeof(double));\r\n\t\r\n\tis.close();\r\n\r\n\tstd::cout << v2;\r\n}\r\n<\/pre>\n<p>\uc5ec\uae30\uc11c C++\uc758 template\uc744 \uc774\uc6a9\ud574 \uac1c\uc120\uc744 \ud574\ubcf4\ub3c4\ub85d \ud558\uaca0\uc2b5\ub2c8\ub2e4. \uc989, \ub2e4\uc74c\uacfc \uac19\uc740 2\uac1c\uc758 \ud15c\ud50c\ub9bf \ud568\uc218\ub97c \ucd94\uac00\ud569\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"cpp\">\r\ntemplate&lt;typename T>\r\nstd::ostream& write_typed_data(std::ostream& stream, const T& value) {\r\n\treturn stream.write(reinterpret_cast&lt;const char*>(&value), sizeof(T));\r\n}\r\n\r\ntemplate&lt;typename T>\r\nstd::istream & read_typed_data(std::istream& stream, T& value) {\r\n\treturn stream.read(reinterpret_cast&lt;char*>(&value), sizeof(T));\r\n}\r\n<\/pre>\n<p>\ub124, write_typed_data\uc640 read_typed_data\ub294 \uac01\uac01 \uc784\uc774\uc758 \ub370\uc774\ud130 \ud0c0\uc785\uc5d0 \ub300\ud574\uc11c \uc9c0\uc815\ub41c \uc2a4\ud2b8\ub9bc\uc5d0 \uba54\ubaa8\ub9ac\uc5d0 \uc800\uc7a5\ub41c \uadf8\ub300\ub85c\uc758 \uad6c\uc870\uc778 \ubc14\uc774\ub108\ub9ac \ud615\uc2dd\uc73c\ub85c \uc4f0\uace0 \uc77d\ub294 \ubc94\uc6a9 \ud568\uc218\uc785\ub2c8\ub2e4.<\/p>\n<p>\uc774 \ub450 \ud568\uc218\ub97c \ud65c\uc6a9\ud574 3.141592625 \uac12\uc744 \uc4f0\uace0 \uc77d\ub294 \uc804\uccb4 \ucf54\ub4dc\ub97c \ub2e4\uc2dc \uc791\uc131\ud574 \ubcf4\uba74 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"cpp\">\r\n#include &lt;iostream>\r\n#include &lt;fstream>\r\n\r\ntemplate&lt;typename T>\r\nstd::ostream& write_typed_data(std::ostream& stream, const T& value) {\r\n\treturn stream.write(reinterpret_cast&lt;const char*>(&value), sizeof(T));\r\n}\r\n\r\ntemplate&lt;typename T>\r\nstd::istream & read_typed_data(std::istream& stream, T& value) {\r\n\treturn stream.read(reinterpret_cast&lt;char*>(&value), sizeof(T));\r\n}\r\n\r\nint main()\r\n{\r\n\t\/\/ Write \r\n\tstd::ofstream os(\"d:\\\\data.bin\", std::ios::binary);\r\n\r\n\tdouble v = 3.141592625;\r\n\t\/\/os.write(reinterpret_cast&lt;const char*>(&v), sizeof(double));\r\n\twrite_typed_data(os, v);\r\n\r\n\tos.close();\r\n\t\/\/ <- test unit end\r\n\r\n\t\/\/ Read\r\n\tstd::ifstream is(\"d:\\\\data.bin\", std::ios::binary);\r\n\r\n\tdouble v2;\r\n\tread_typed_data(is, v2);\r\n\t\/\/is.read(reinterpret_cast&lt;char*>(&v2), sizeof(double));\r\n\t\r\n\tis.close();\r\n\r\n\tstd::cout << v2;\r\n\t\/\/ <- test unit end\r\n}\r\n<\/pre>\n<p>C++\uc5d0\uc11c \uc2a4\ud2b8\ub9bc\uc744 \ud65c\uc6a9\ud574 \ud0c0\uc785\uc744 \uac00\uc9c0\ub294 \ubcc0\uc218\ub97c \ubc14\uc774\ub108\ub9ac \ud615\uc2dd\uc73c\ub85c \uc800\uc7a5\ud558\ub294 \uc704\uc758 \ubc29\uc2dd\uc774 \uc815\uc11d\uc778\uc9c0\ub294 \ubaa8\ub974\uaca0\uc2b5\ub2c8\ub2e4. (\uc774\uc81c\uc640\uc11c \uc774\uac8c \ubb34\uc2a8 \uc18c\ub9ac? -_-;) reinterpret_cast\ub97c \uc0ac\uc6a9\ud588\ub2e4\ub294 \uc810\uc5d0\uc11c \uc0c1\ub2f9\ud788 \uc758\uad6c\uc2ec\uc774 \ub4e4\uae30 \ub54c\ubb38\uc778\ub370\uc694. \ub354\uc6b1 \ub098\uc740 \ubc29\uc2dd\uc774 \uc788\ub2e4\uba74 \uc81c\uc548\ud574 \uc8fc\uc2dc\uae30 \ubc14\ub78d\ub2c8\ub2e4. reinterpret_cast\ub294 \ud3ec\uc778\ud130\uac00 \ub2e4\ub978 \ud3ec\uc778\ud130 \ud615\uc2dd\uc73c\ub85c \ubcc0\ud658\ub420 \uc218 \uc788\ub3c4\ub85d \ud558\uac70\ub098 \uc815\uc218 \uacc4\uc5f4 \ud615\uc2dd\uc774 \ud3ec\uc778\ud130 \ud615\uc2dd\uc73c\ub85c \ubcc0\ud658\ub420 \uc218 \uc788\ub3c4\ub85d \ud558\uace0 \uadf8 \ubc18\ub300\ub85c\ub3c4 \ubcc0\ud658\ub420 \uc218 \uc788\ub3c4\ub85d \ud558\ub294 cast \uc5f0\uc0b0\uc790\uc785\ub2c8\ub2e4.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>C++\uc740 stream\uc744 \ud1b5\ud574 \ubc18\ubcf5\uc790(iterator)\ub97c \uc774\uc6a9\ud574 \ub370\uc774\ud130\ub97c\u00a0 \ub9e4\uc6b0 \uc720\uc5f0\ud558\uac8c \ucc98\ub9ac \ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \uc2a4\ud2b8\ub9bc\uc744 \ud1b5\ud574 \ub370\uc774\ud130\uc758 \uc785\ub825\uc744 \ud0a4\ubcf4\ub4dc\ub098 \ud30c\uc77c \ub4f1\uc744 \ud1b5\ud574 \ub9e4\uc6b0 \uc720\uc5f0\ud558\uace0 \ud6a8\uacfc\uc801\uc73c\ub85c \uc77d\uace0 \uc4f8 \uc218 \uc788\ub294\ub370\uc694. \ubb38\uc81c\ub294 \uc77c\ubc18\ud654\ub41c \ubb38\uc790\uc5f4\uc5d0 \ub300\ud55c \uc77d\uace0 \uc4f0\uae30\uc5d0 \uc911\uc2ec\uc744 \ub450\uace0 \uc788\ub2e4\ub294 \uc810\uc785\ub2c8\ub2e4.\u00a0 \uc989,\u00a0 C++\uc758 \uc2a4\ud2b8\ub9bc\uc744 \uc774\uc6a9\ud574 \uc2e4\uc218 \ud0c0\uc785\uc758 \uac12\uc73c\ub85c 3.14159265\ub77c\ub294 \uac12\uc744 \ud30c\uc77c\uc5d0 \uc800\uc7a5\ud558\uace0\uc790 \ud55c\ub2e4\uba74, \uc774 \uac12\uc744 \uba54\ubaa8\ub9ac\uc5d0 \uc800\uc7a5\ub41c \uadf8\ub300\ub85c\uc758\u00a0\uc2e4\uc218\ud615\u00a0\ubc14\uc774\ub108\ub9ac &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/www.gisdeveloper.co.kr\/?p=3847\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;[C++] Stream\uc744 \uc774\uc6a9\ud55c Typed Binary \ub370\uc774\ud130 \uc77d\uace0 \uc4f0\uae30&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[117],"tags":[],"class_list":["post-3847","post","type-post","status-publish","format-standard","hentry","category-cpp"],"_links":{"self":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/3847","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3847"}],"version-history":[{"count":12,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/3847\/revisions"}],"predecessor-version":[{"id":9711,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/3847\/revisions\/9711"}],"wp:attachment":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3847"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3847"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3847"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}