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

📄 subject_26406.htm

📁 一些关于vc的问答
💻 HTM
字号:
<p>
序号:26406 发表者:tigersky2000 发表日期:2002-12-31 20:41:53
<br>主题:向“雷神”学习,C++编程思想读书笔记(三)
<br>内容:第六章 输入输出流介绍<BR>插入符(&lt;&lt;)与提取符(&gt;&gt;)<BR>  插入符就是向流中写入数据,提最符就是从流中检索数据<BR><BR>文件流 ofstream ifstream<BR>内存流 ostrstream istrstream<BR>字符串流 ostringstream istringstream<BR><BR>操纵算子<BR>  操纵算子是插入在流中的控制符<BR>  关于字符缓冲区溢出 如下例<BR>char* buf[10];<BR>cin&gt;&gt;buf;<BR>cout&lt;&lt;buf;<BR>如果输入字符超过10个时,则buf就会出现溢出<BR><BR>流定位<BR>  流定位有两种定位方式:绝对定位和相对定位<BR>绝对定位:直接定位到流中的绝地位置,用seek函数(输出流用seekp()输入流用seekg())<BR>相对定位:就是定位到距离某一位置的相对距离,用一个重载了的seek函数实现,它有2个参数,第一个参数是偏移量(可以为负数),第二个是参照点,参照点可以是ios::beg(流开始位置),ios::cur(流当前位置,获得当前位置可以用tell函数),ios::end(流结尾位置)<BR><BR><BR>建立读写文件<BR>可以建立一个文件流,对他进行读和写操作,ifstream in(“filename”,ios::in|ios::out),但是由于我们不能直接对ifstream进行写操作,所以只能对他的缓冲区进行处理,应建立ostream out(in.rdbuf()),这样,当ifstream析构时,析构函数会自动将缓冲区内容保存到文件中。例如:<BR>ifstream in(“filename”,ios::in|ios::out);<BR>ostream out(in.rdbuf());<BR>out.seekp(0,ios::end);<BR>out&lt;&lt;”这是在文件最后一行加入的文字”;<BR><BR><BR>STRSTREAMS<BR>内存流的操作与文件流基本相同,只不过内存流操作的是内存块,文件流操作的是文件。<BR>对于ostrstream,可以在初始化时指定他的缓冲区位置,也可以不指定,由系统自动分配。自动分配缓冲区的流,在缓冲区用完后会去申请一个更大的内存块。<BR><BR>关于调用ostream::str()的注意事项:<BR>这个函数将返回ostream缓冲区的首地址,如果在进入此项操作后,继续写入字符,则可能导致ostream重新申请内存,这样,原来返回的缓冲区指针就不是正确的指向现在的缓冲区了。为了防止这一点的发生,在C++中,一旦调用了str(),此内存块就被冻结,不让用户再向其中写入新内容,并且,这时,缓冲区要由用户来释放。<BR>缓冲区释放有2种方法:<BR>1、直接用delete释放内存块<BR>2、执行ostream::freeze(0)对缓冲区解冻,这样,析构函数就可以自动的释放缓冲区了。但要注意的是,这时,原来由str()返回的地址将是不可靠的。<BR><BR>通常是不对ostream进行解冻,然后再向其中追加新内容的;而是新建一个ostream,再用旧ostream的rdbuf()将原内容灌入新流中。<BR>
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:tigersky2000 回复日期:2003-02-19 14:22:06
<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>回复者:天花乱坠 回复日期:2003-02-20 08:26:42
<br>内容:嗯,值得学习:)
<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 + -