VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

有编程疑问吗?还请到提问专区发帖提问!
搜索
查看: 1170|回复: 32

字符串写文件为什么只写进去了一半?

[复制链接]
51_avatar_middle
online_admins Syc 发表于 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 也是不正确的。

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

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




上一篇:Windows编程(二)Windows编程的本质
下一篇:Windows编程(三)第一个内核对象操练——进程

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

08_avatar_middle
online_vip 志纯 发表于 2018-3-28 15:53:30 | 显示全部楼层
学习学习

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

82_avatar_middle
online_vip koolit 发表于 2018-3-28 15:54:09 | 显示全部楼层
write 从缓冲区调用字节数,所以应sizeof(TCHAR)*len,不知道对不

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

92_avatar_middle
在线会员 a灬魂淡 发表于 2018-3-28 15:57:55 | 显示全部楼层
看看  是哪里的细节

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

16_avatar_middle
在线会员 突突突突 发表于 2018-3-28 15:58:13 | 显示全部楼层
没有遇到过呢学习一下

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

87_avatar_middle
在线会员 xiaotao701 发表于 2018-3-28 16:04:09 来自手机 | 显示全部楼层
记事本是窄字节版的吧

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

87_avatar_middle
在线会员 xiaotao701 发表于 2018-3-28 16:07:38 | 显示全部楼层
写汉字又有问题

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

81_avatar_middle
online_moderator Debug 发表于 2018-3-28 16:09:26 | 显示全部楼层
很明显跟工程编码有关啊
直接 cFile.Write(ipchar, len); 这么写的话,字符串长度肯定比所占用的字节数小

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

71_avatar_middle
在线会员 978768269 发表于 2018-3-28 16:10:42 | 显示全部楼层
想不到,学习了,看一下

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

67_avatar_middle
online_vip qiyujie 发表于 2018-3-28 16:14:18 | 显示全部楼层
学习学习

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

07_avatar_middle
在线会员 freehawkzk 发表于 2018-3-28 16:32:17 | 显示全部楼层
先看看原因。

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

96_avatar_middle
在线会员 w2468624269 发表于 2018-3-28 18:27:27 | 显示全部楼层
就看看字符串写文件为什么只写进去了一半?

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

18_avatar_middle
online_vip 听雨声等你笑 发表于 2018-3-28 19:24:08 | 显示全部楼层
学习学习

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

11_avatar_middle
online_vip 737 发表于 2018-3-28 20:42:01 来自手机 | 显示全部楼层
没看明白

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

59_avatar_middle
在线会员 fangting1989 发表于 2018-3-28 22:17:18 | 显示全部楼层
我就是来打酱油滴 黑hi

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

11_avatar_middle
在线会员 jkasdas0002 发表于 2018-3-29 09:04:51 | 显示全部楼层
谢谢分享教程

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

15_avatar_middle
online_vip jadeshu 发表于 2018-3-30 03:22:22 | 显示全部楼层
字符串写文件为什么只写进去了一半?

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

06_avatar_middle
在线会员 angeltony 发表于 2018-3-30 13:23:54 | 显示全部楼层
没有遇到过呢学习一下

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

00_avatar_middle
在线会员 oyxbl 发表于 2018-3-31 19:10:46 | 显示全部楼层
为什么呢,我就是要知道

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

38_avatar_middle
online_vip 2191265529 发表于 2018-3-31 22:09:03 | 显示全部楼层
经典。。。。。

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

关闭

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

QQ
QQ在线咨询
联系电话
13591366679
手机扫一扫 关注本站精彩内容
wxqrcode

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

GMT+8, 2018-9-24 20:16

Powered by Discuz! X3.4

© 2009-2018 cctry.com

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