⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subject_29371.htm

📁 一些关于vc的问答
💻 HTM
字号:
<p>
序号:29371 发表者:枫叶游子 发表日期:2003-02-06 12:35:38
<br>主题:请教如何把结果输出到二进制文件?
<br>内容:请教:<BR><BR>在C++的console模式下编程,(不是VC 的MFC)<BR><BR>如何把一个浮点数写入一个新建立的二进制文件再读出?<BR><BR><BR>初学者,请写一段例程供学习。包括如何生成并打开文件,<BR>如何写入,读出。。。。<BR>对文件操作还不熟悉。<BR><BR><BR>谢谢!!
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:tjhe 回复日期:2003-02-06 12:59:06
<br>内容:#include &lt;iostream.h&gt;<BR>#include &lt;fstream.h&gt;<BR><BR>void main()<BR>{&nbsp;&nbsp;<BR>&nbsp;&nbsp; float x,y;<BR>&nbsp;&nbsp; cout &lt;&lt; "请输入两个浮点数" &lt;&lt; endl;<BR>&nbsp;&nbsp; cin &gt;&gt; x &gt;&gt; y;<BR>&nbsp;&nbsp; //建立文件并写入&nbsp;&nbsp;<BR>&nbsp;&nbsp; ofstream outf("abc.dat",);&nbsp;&nbsp;//文件名可自行定义<BR>&nbsp;&nbsp; outf &lt;&lt; x &lt;&lt; y;<BR>&nbsp;&nbsp; outf.close();<BR>&nbsp;&nbsp; //打开文件并读出<BR>&nbsp;&nbsp; ifstream inf("abc.dat");<BR>&nbsp;&nbsp; inf &gt;&gt; x &gt;&gt; y;<BR>&nbsp;&nbsp; inf.close()<BR>&nbsp;&nbsp; cout &lt;&lt; "x=" &lt;&lt; x &lt;&lt; endl;<BR>&nbsp;&nbsp; cout &lt;&lt; "y=" &lt;&lt; y &lt;&lt; endl;<BR>} 
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:枫叶游子 回复日期:2003-02-06 13:44:22
<br>内容:谢谢。<BR><BR>我把你的程序稍改一下,如下所示,<BR>#include &lt;iostream.h&gt;<BR>#include &lt;fstream.h&gt;<BR><BR>void main()<BR>{&nbsp;&nbsp;<BR>&nbsp;&nbsp; float x=1.0;<BR>&nbsp;&nbsp; float y=2.0;<BR>&nbsp;&nbsp; <BR>&nbsp;&nbsp; ofstream outf("\\data\\1.dat");&nbsp;&nbsp;<BR>&nbsp;&nbsp; outf &lt;&lt; x &lt;&lt; y;<BR>&nbsp;&nbsp; outf.close();<BR>&nbsp;&nbsp; <BR>&nbsp;&nbsp; ifstream inf("\\data\\1.dat");<BR>&nbsp;&nbsp; inf &gt;&gt; x &gt;&gt; y;<BR>&nbsp;&nbsp; inf.close();<BR>&nbsp;&nbsp; cout &lt;&lt; "x=" &lt;&lt; x &lt;&lt; endl;<BR>&nbsp;&nbsp; cout &lt;&lt; "y=" &lt;&lt; y &lt;&lt; endl;<BR>} <BR><BR><BR>运行得到:<BR>x=12<BR>y=2<BR><BR>与所赋初值不一致,为什么??<BR>盼回复。<BR><BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:tjhe 回复日期:2003-02-06 14:50:53
<br>内容:outf &lt;&lt; x &lt;&lt; y;&nbsp;&nbsp;//改成outf &lt;&lt; x &lt;&lt; ' ' &lt;&lt; y;<BR><BR><BR>#include &lt;iostream.h&gt;<BR>#include &lt;fstream.h&gt;<BR>#include &lt;stdlib.h&gt;<BR><BR>void main()<BR>{&nbsp;&nbsp;<BR>&nbsp;&nbsp; float x=1.0;<BR>&nbsp;&nbsp; float y=2.0;<BR>&nbsp;&nbsp; <BR>&nbsp;&nbsp; ofstream outfile("1.dat");&nbsp;&nbsp;<BR>&nbsp;&nbsp; if(!outfile)<BR>&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cout &lt;&lt; "file could not be created!" &lt;&lt; endl;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exit(1);<BR>&nbsp;&nbsp; }<BR><BR>&nbsp;&nbsp; outfile &lt;&lt; x &lt;&lt; ' ' &lt;&lt; y;<BR>&nbsp;&nbsp; outfile.close();<BR>&nbsp;&nbsp; <BR>&nbsp;&nbsp; ifstream infile("1.dat");<BR>&nbsp;&nbsp; if(!infile)<BR>&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cout &lt;&lt; "file could not be opened!" &lt;&lt; endl;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exit(1);<BR>&nbsp;&nbsp; }<BR>&nbsp;&nbsp; <BR>&nbsp;&nbsp; infile &gt;&gt; x &gt;&gt; y;<BR>&nbsp;&nbsp; infile.close();<BR><BR>&nbsp;&nbsp; cout &lt;&lt; "x=" &lt;&lt; x &lt;&lt; endl;<BR>&nbsp;&nbsp; cout &lt;&lt; "y=" &lt;&lt; y &lt;&lt; endl;<BR>} <BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:枫叶游子 回复日期:2003-02-07 03:58:34
<br>内容:朋友,谢谢你的热心帮助。<BR>这个问题已经解决。<BR><BR>但你能解释一下outf &lt;&lt; x &lt;&lt; y;&nbsp;&nbsp;//改成outf &lt;&lt; x &lt;&lt; ' ' &lt;&lt; y;<BR>的道理吗?<BR><BR>另外,如果我是把一个2维浮点数组写入一个2进制文件保存呢?<BR>程序如何写?&nbsp;&nbsp; 直接用2重 for循环写入,读出吗?<BR><BR>请指教!<BR>谢谢
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:枫叶游子 回复日期:2003-02-07 04:50:55
<br>内容:再提一个问题:<BR><BR>我单独写了一个程序如下,读一个文件(里面是一个2维数组)并输出到屏幕:<BR><BR>#include &lt;iostream.h&gt;<BR>#include &lt;fstream.h&gt;<BR>#include &lt;stdlib.h&gt;<BR><BR><BR>void main()<BR><BR>{<BR><BR>double output=0.0;<BR><BR>// open file for read<BR>&nbsp;&nbsp; ifstream infile("\\data\\1.dat");<BR>&nbsp;&nbsp; if(!infile)<BR>&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cout &lt;&lt; "file creating failed!" &lt;&lt; endl;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exit(1);<BR>&nbsp;&nbsp; }<BR><BR><BR>&nbsp;&nbsp; //read from datafile<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (int i=0;i&lt;2;i++)<BR>&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(int j=0;j&lt;3;j++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;infile &gt;&gt; output;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&lt;&lt; output;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&lt;&lt;endl;<BR>&nbsp;&nbsp; }<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; infile.close();<BR>}<BR><BR>}<BR><BR>结果是:<BR>000<BR>000<BR><BR>我的c:\data路径下其实并没有文件,是一个空目录;<BR>为什么程序默认里面的数据全是0???<BR>如果我希望程序不要自动生成文件,而是发现没有该文件存在时<BR>报出错信息,那么又该怎么写??<BR><BR>麻烦你了。<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:Herbert_24 回复日期:2003-02-07 14:32:21
<br>内容:#include "StdAfx.h"<BR>#include &lt;iostream.h&gt;<BR>#include &lt;fstream.h&gt;<BR>#include &lt;stdlib.h&gt;<BR><BR>void main()<BR>{ <BR>/*&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp; double x=1.02;<BR>&nbsp;&nbsp; double y=2.04;<BR>&nbsp;&nbsp; <BR>&nbsp;&nbsp; ofstream outfile("1.txt",<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ios::out |<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ios::binary,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;filebuf::sh_write);&nbsp;&nbsp;<BR>&nbsp;&nbsp; if(outfile.fail())<BR>&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cout &lt;&lt; "file could not be created!" &lt;&lt; endl;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exit(1);<BR>&nbsp;&nbsp; }<BR><BR>&nbsp;&nbsp; outfile &lt;&lt; x &lt;&lt; " " &lt;&lt; y;<BR>&nbsp;&nbsp; outfile.close();<BR>&nbsp;&nbsp; <BR>&nbsp;&nbsp; ifstream infile("1.txt",<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ios::in |<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ios::binary,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;filebuf::sh_read);<BR>&nbsp;&nbsp; <BR>&nbsp;&nbsp; if(infile.fail())<BR>&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cout &lt;&lt; "file could not be opened!" &lt;&lt; endl;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exit(1);<BR>&nbsp;&nbsp; }<BR>&nbsp;&nbsp; <BR>&nbsp;&nbsp; infile &gt;&gt; x &gt;&gt; y;<BR>&nbsp;&nbsp; infile.close();<BR><BR>&nbsp;&nbsp; cout &lt;&lt; "x=" &lt;&lt; x &lt;&lt; endl;<BR>&nbsp;&nbsp; cout &lt;&lt; "y=" &lt;&lt; y &lt;&lt; endl;<BR>*/<BR>&nbsp;&nbsp;double output=2.35 ;<BR><BR>// open file for read<BR>&nbsp;&nbsp; ifstream infile("1.txt",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// filename .<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ios::in |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// read mode .<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ios::binary |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// binary mode .<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ios::nocreate ,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// if does not file . the error .<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;filebuf::sh_read);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Read sharing allowed .<BR>&nbsp;&nbsp; if(infile.fail())<BR>&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cout &lt;&lt; "file creating failed!" &lt;&lt; endl;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exit(1);<BR>&nbsp;&nbsp; }<BR><BR><BR>&nbsp;&nbsp; for (int i=0; i&lt;3; i++)<BR>&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; infile &gt;&gt; output ;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cout &lt;&lt; output &lt;&lt; endl ;<BR>&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;infile.close();<BR>} <BR><BR> 当文件1.txt为空时.&nbsp;&nbsp;输出到屏幕的值只是output 的初始化的值.<BR> 你看看VC 的MSDN 上面都有.
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -