利用stl函数读取文件内容的问题

昨天一个朋友在用stl中的函数来读取文件内容到一个char数组里去。
使用的方法是:
    ifstream btfile("1.txt");
     ostringstream temp;
    temp<<btfile;
发现之读进来8个byte。

于是换为:
    ifstream btfile("1.txt");
     ostringstream temp;
    temp<<btfile.rdbuf();
这下好象对了,不过后来一对照发现还是少读了一些字符。经过一阵调试和研究,发现1.txt中含有一些中文字符,这些中文字符全部都丢掉了。

最后,终于找到了正确的方法:
    ifstream btfile("1.txt",ios_base::binary);
     ostringstream temp;
    temp<<btfile.rdbuf();
就是使用binary格式,而不是text格式来读取文件。这个方法和用fopen等等一系列函数来读取文件内容的方法是一致的,都是开辟一段buffer,不管文件中的字符是什么格式,每读一个byte就放到buffer里面去。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值