首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

ostream<int>作用于fstream,保存的却是char,为什么?该如何解决

2012-04-16 
ostreamint作用于fstream,保存的却是char,为什么?一小段程序,就几行:C/C++ codeint main(void){fstream

ostream<int>作用于fstream,保存的却是char,为什么?
一小段程序,就几行:

C/C++ code
int main(void){      fstream fs("d:\\1.dat",ios::out);      int buf[]={1,2};      copy(buf,buf+2,ostream_iterator<int>(fs,"")); }


为什么得到的1.dat里面是存了char类型的字符1和2而不是两个整数? 
我发现d:\1.dat是两个字节大小。证明了是char。 
问题是,为什么fs没有写入2进制整数而是写入了char? 
我的ostream_iterator模板类型指定了int啊。我明明保存的是int

问题出在哪里?

[解决办法]
C/C++ code
int main(void){    fstream fs("d:\\1.dat",ios::out);    int buf[]={1,2};    copy(buf,buf+2,ostream_iterator<int>(fs,""));  }==>int main(void){    fstream fs("d:\\1.dat",ios::out|ios::binary);    int buf[]={1,2};    copy((char*)buf,(char*)(buf+2),ostreambuf_iterator<char>(fs));    fs.close();} 

热点排行