📄 subject_45204.htm
字号:
<p>
序号:45204 发表者:我才能是一个演员 发表日期:2003-06-27 16:29:34
<br>主题:CString char 这些基础的东西没搞通,导致我不得不问这个问题
<br>内容:1) 从txt文件里读内容到CString里,比较标准的方法是什么呢?<BR>---------------------------------------------------------------------------<BR>CString mystr;<BR>CFile myfile;<BR><BR>myfile.Open(mypath, CFile::modeRead);<BR>myfile.SeekToBegin();<BR>int length = myfile.GetLength();<BR><BR>myfile.Read(mystr, length);<BR>---------------------------------------------------------------------------<BR>是以上写法吗?您一定帮忙看一下,谢谢!<BR><BR>2)txt文件的结束符是啥?‘\0’?
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:shenjie 回复日期:2003-06-27 18:32:55
<br>内容:用CFile配合CArchive,调用CArchive::ReadString和CArchive::WriteString,这是最简单最标准的读写方式,详细情况看MSDN吧.
<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-06-27 19:36:38
<br>内容:CStdioFile就 是 专 处 理 文 本 文 件 的
<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-06-27 20:13:30
<br>内容:myfile.Read(mystr, length); 是会返回实际读取的字符数的,返回值小于你的变量'length'时就读到文件尾了. 调用mystr时,要用read()返回值的长度.
<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-06-28 00:24:19
<br>内容:姜,你好。其实我试过,用我写的myfile.Read(mystr, length); 是不行的,至少不能达到我要的效果。<BR>最好用如下:<BR> char* mystr = new char[length];<BR><BR> myfile.Read(mystr, length);<BR><BR>我也搞不懂 char* mystr(字符数组指针?)、“char myarray[200] ”程序某处只写 myarray、 CString mystring 的区别了。上学时候明白,毕业全他老老的忘了!!<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>回复者:姜晓东 回复日期:2003-06-28 15:33:48
<br>内容:它们是这样的:<BR> 其实数组变量就是串的首地址:<BR> 如 char a[20];<BR> 可以这样访问数组: 令 char* myp=a;<BR> char mychar1,mychar2,mychar3;<BR> mychar1=*(myp); // 得到数组的第一个元素<BR> mychar2=*(myp++); // 偏移后得到数组的第二个元素<BR> mychar3=*(myp++); // 再偏移后得到数组的第三个元素<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-06-28 15:39:16
<br>内容:还有,CString是对象,不是简单的数组, 但是,CString 通过(const char *)的运算符重载,在函数传递时可以当成const char *的类型.<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-06-28 15:50:42
<br>内容:另外,在你的例子中,可以这样写:<BR>......<BR>char mycharcluster[3000];<BR>int mylen;<BR><BR>myfile.Open(mypath, CFile::modeRead);<BR>myfile.SeekToBegin();<BR><BR>do<BR>{<BR> mylen=myfile.Read(mycharcluster, 3000);<BR> mycharcluster[mylen]=0;<BR> mystr+=mycharcluster;<BR>} while(mylen>0);<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-06-28 18:56:02
<br>内容:我们超越了给分的极限,拉近知识的平面。谢谢!多多交流!<BR><BR>同样谢谢 shenjie 汉 萧七!!我每提高一步,都是站在你们的肩膀上。<BR>2003-6-28 19:05:09
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -