2025年ifstream(ifstream读取一行数据)

ifstream(ifstream读取一行数据)p 由于你的坐标是成对的 为什么不为它们写一个结构 p pre struct nbsp CoordinatePa nbsp nbsp nbsp nbsp int nbsp x nbsp nbsp nbsp nbsp int nbsp y pre

大家好,我是讯享网,很高兴认识大家。



 <p>由于你的坐标是成对的,为什么不为它们写一个结构?</p><pre>struct&nbsp;CoordinatePair{ 

讯享网

&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;x; &nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;y;};

然后你可以为istreams编写一个重载的提取运算符:

讯享网std::istream&&nbsp;operator&gt;&gt;(std::istream&&nbsp;is,&nbsp;CoordinatePair&&nbsp;coordinates){ &nbsp;&nbsp;&nbsp;&nbsp;is&nbsp;&gt;&gt;&nbsp;coordinates.x&nbsp;&gt;&gt;&nbsp;coordinates.y;
讯享网
&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;is;}

然后你可以直接将坐标文件读入这样的矢量:

#include&nbsp;&lt;fstream&gt;#include&nbsp;&lt;iterator&gt;#include&nbsp;&lt;vector&gt;int&nbsp;main(){ &nbsp;&nbsp;&nbsp;&nbsp;char&nbsp;filename[]&nbsp;=&nbsp;&quot;coordinates.txt&quot;; &nbsp;&nbsp;&nbsp;&nbsp;std::vector&lt;CoordinatePair&gt;&nbsp;v; &nbsp;&nbsp;&nbsp;&nbsp;std::ifstream&nbsp;ifs(filename); &nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(ifs)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;std::copy(std::istream_iterator&lt;CoordinatePair&gt;(ifs),&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;std::istream_iterator&lt;CoordinatePair&gt;(), &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;std::back_inserter(v)); &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;std::cerr&nbsp;&lt;&lt;&nbsp;&quot;Couldn‘t&nbsp;open&nbsp;&quot;&nbsp;&lt;&lt;&nbsp;filename&nbsp;&lt;&lt;&nbsp;&quot;&nbsp;for&nbsp;reading &quot;; &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Now&nbsp;you&nbsp;can&nbsp;work&nbsp;with&nbsp;the&nbsp;contents&nbsp;of&nbsp;v}

小讯
上一篇 2025-05-15 08:48
下一篇 2025-04-29 08:05

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/161610.html