VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 1402|回复: 33

[已解决] 字符串写文件为什么只写进去了一半?

[复制链接]
51_avatar_middle
online_admins 发表于 2018-3-28 15:42:18 | 显示全部楼层 |阅读模式
今天刚刚在群中一位会员跟我提出了这么一个问题,大家也跟着学习学习吧,看看有什么问题:
字符串写文件为什么只写进去了一半?

下面我来补全一下代码,代码应该是这样的:
备注:工程是Unicode编码!
  1. CString strip = _T("127.0.0.1");
  2. TCHAR *ipchar;
  3. int len = strip.GetLength();
  4. ipchar = (TCHAR*)strip.GetBuffer(len);
  5. CFile cFile;
  6. cFile.Open(_T("C:\\123.txt"), CFile::modeCreate | CFile::modeReadWrite);
  7. cFile.Write(ipchar, len);
  8. cFile.Close();
  9. ipchar = NULL;
复制代码


好了,建立一个MFC类型的对话框工程,之后把代码放进去,一执行,确实在C盘根目录下生成了 1.txt 这个文件,而且里面确实有内容,但是内容不全,如下:
字符串写文件为什么只写进去了一半?

只写进去了:127.0 这么个内容,为什么呢?代码有什么问题吗?
大家先来找找原因!回复后见问题答案!

游客,如果您要查看本帖隐藏内容请回复


另外,代码中还有一处错误,不知道大家看出来没有?
CString 的 GetBuffer 和 ReleaseBuffer 要成对使用,楼主这里面在使用完 GetBuffer 返回的指针 ipchar 之后没有 ReleaseBuffer 也是不正确的。

好了,先说到这吧,大家有什么疑问跟帖回复吧!

游客,如果您要查看本帖隐藏内容请回复




上一篇:有偿请教一个问题,会的联系我
下一篇:codejock使用问题
08_avatar_middle
online_vip 发表于 2018-3-28 15:53:30 | 显示全部楼层
学习学习
82_avatar_middle
online_vip 发表于 2018-3-28 15:54:09 | 显示全部楼层
write 从缓冲区调用字节数,所以应sizeof(TCHAR)*len,不知道对不
92_avatar_middle
在线会员 发表于 2018-3-28 15:57:55 | 显示全部楼层
看看  是哪里的细节
16_avatar_middle
在线会员 发表于 2018-3-28 15:58:13 | 显示全部楼层
没有遇到过呢学习一下
87_avatar_middle
在线会员 发表于 2018-3-28 16:04:09 来自手机 | 显示全部楼层
记事本是窄字节版的吧
87_avatar_middle
在线会员 发表于 2018-3-28 16:07:38 | 显示全部楼层
写汉字又有问题
81_avatar_middle
online_moderator 发表于 2018-3-28 16:09:26 | 显示全部楼层
很明显跟工程编码有关啊
直接 cFile.Write(ipchar, len); 这么写的话,字符串长度肯定比所占用的字节数小
71_avatar_middle
在线会员 发表于 2018-3-28 16:10:42 | 显示全部楼层
想不到,学习了,看一下
67_avatar_middle
online_vip 发表于 2018-3-28 16:14:18 | 显示全部楼层
学习学习
07_avatar_middle
在线会员 发表于 2018-3-28 16:32:17 | 显示全部楼层
先看看原因。
96_avatar_middle
在线会员 发表于 2018-3-28 18:27:27 | 显示全部楼层
就看看字符串写文件为什么只写进去了一半?
18_avatar_middle
online_vip 发表于 2018-3-28 19:24:08 | 显示全部楼层
学习学习
11_avatar_middle
online_vip 发表于 2018-3-28 20:42:01 来自手机 | 显示全部楼层
没看明白
59_avatar_middle
在线会员 发表于 2018-3-28 22:17:18 | 显示全部楼层
我就是来打酱油滴 黑hi
11_avatar_middle
在线会员 发表于 2018-3-29 09:04:51 | 显示全部楼层
谢谢分享教程
15_avatar_middle
online_vip 发表于 2018-3-30 03:22:22 | 显示全部楼层
字符串写文件为什么只写进去了一半?
06_avatar_middle
在线会员 发表于 2018-3-30 13:23:54 | 显示全部楼层
没有遇到过呢学习一下
00_avatar_middle
在线会员 发表于 2018-3-31 19:10:46 | 显示全部楼层
为什么呢,我就是要知道
38_avatar_middle
online_vip 发表于 2018-3-31 22:09:03 | 显示全部楼层
经典。。。。。
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号tongdun|网站地图wx_jqr

GMT+8, 2019-1-23 01:37

Powered by Discuz! X3.4

© 2009-2019 cctry.com

快速回复 返回顶部 返回列表