📄 subject_20815.htm
字号:
<p>
序号:20815 发表者:skitty 发表日期:2002-11-11 09:45:25
<br>主题:char* 表示的字符串怎么传递出来?
<br>内容:我在做一个日志的编程,类似于控制面板-->管理工具-->事件查看器中的日志。是通过读写一个文本文件,来通过一个ctrlList显示出来。<BR>我自己写了一个LogFile类,在类中通过调用它的成员函数char* LogFile::ReadLog() 来获得文本文件中的内容,放在tmpstr中,<BR><BR>char tmpstr[]={"This is my disk data."};<BR>UINT nBytes = file.GetLength();<BR>nBytes=file.Read(tmpstr,nBytes);<BR>然后把temstr传出来,<BR> char* test2;<BR>test2=&tmpstr[0];<BR><BR>在对话框类中显示在一个ctrlList中,<BR> LogFile ww;<BR> ww.CreateAFile();<BR> ww.WriteLog();<BR> char* event;<BR> ww.ReadLog();<BR><BR> event=ww.test2;<BR>在LogFile类中<BR>test2=&tmpstr[0];传递的是对的,<BR>但event=ww.test2传出来就不对了。<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>
回复者:啊志 回复日期:2002-11-11 11:24:36
<br>内容:test2=tmpstr;<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>回复者:啊志 回复日期:2002-11-11 11:38:14
<br>内容:我看了你的代码,还有错误:<BR>应该把<BR>char tmpstr[]={"This is my disk data."};改成char tmpstr[255];(空间要尽量大一些)并放到类定义(作为全局变量)中。<BR><BR>你把它的定义放到成员函数中,那么在离开这个函数时,字符串{"This is my disk data."}的空间就没了,返回的指针tmpstr指向了一个以被释放的空间,所以会出错。<BR><BR>另外,读文件时,文件的最后一个字符是eof,你可以这样:<BR> nBytes=file.Read(tmpstr,nBytes);<BR> int i=(int)file.GetLength();<BR> tmpstr[i]='\0';<BR>就可以了<BR>2002-11-11 11:38:54
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -