文件操作中遇到的问题

最近工作中,需要用到文件操作的模块,因为涉及到特殊的格式要求,所以,自己写了一个类封装读写解析格式的过程,底层操作文件对象本来是用的是 fstream类来操作,不过在使用中却遇到了不少的问题。

首先是vs2005下的中文路径名称问题,我发现只要传入中文路径,打开文件的操作一定会失败,在跟踪调试后发现,fstream类真实打开文件使用的是需要支持宽字节的函数,为了将多字节转换为宽字节,在其内部调用了多字节转宽字节的函数,所以如果在调用含中文路径的文件前,如果你没有设置中文环境,那么转换必然会乱码,随之而来的就是打开文件失败。

不知道vs的后续版本有没有改正这个问题,但是如果大家使用vs2005的fstream类打开文件时,记得设置语言环境。

第二个遇到的问题,是写入值的问题,我需要将一个确定是将一个int值占用四个字节的方式写入到文件中,但是,也许是我才疏学浅,居然没有找到将int值直接写入到fstream流的方法,如果直接按照 <<流的方式,在第二次用>>读取的时候,会出现多读取,或者少读取的问题, 因为进度问题,没有深究此问题,果断用CFile替换掉了fstream…… 暂时猜想的方法是,先将int转换成char * 然后写入char*。这样就可以控制读取(写入)字节数了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值