_tfopen 打开文件

_tfopen 打开文件

_tfopen指定文件编码后程序崩溃 - 局部变量的作用域 - C++博客

vs05和08的crt增加了一点功能, 使用fopen(_wfopen)时可以指定文件的编码, 但我发现这个功能好像有很多bug, 会导致程序崩溃。

我是使用下面的形式打开文件的:

TCHAR buf[1024];

FILE* fp = _tfopen( _T(“a.txt”) , _T(”rt,ccs=UNICODE”) );

_fgetts( buf, _countof(buf), fp );

按msdn的说法,这时fopen会根据文件的bom自动判断文件的编码, 并保证buf中字符的编码总是我希望的那一种。

可是这个程序在使用mbcs并打开unicode编码的文件时会崩溃, 考虑到我的程序只发布unicode版本, 所以忍了,啥也不说。

但这两天发现, UNICODE版本在fgets时也会崩溃, 方法是新建一个excel文件然后重命名为a.txt。

我仔细读了两天msdn,并测试了各种形式,感觉不像是我的错误。
在网上没找到类似的描述, 所以记下来,也许有人会碰到同样的问题。

posted @ 2013-12-30 17:59 心灵捕手 阅读( ...) 评论( ...)   编辑 收藏
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值