标题:二进制文件流的打开问题
只看楼主
非己莫属
Rank: 2
来 自:河南信阳
等 级:论坛游民
帖 子:13
专家分:14
注 册:2012-4-28
结帖率:66.67%
已结贴  问题点数:10 回复次数:5 
二进制文件流的打开问题
#include<iostream>
#include<fstream>
using namespace std;
int main()
{
    fstream data;
    data.open("student",ios::in|ios::out|ios::binary);
    if(!data)
{
     cerr<<"file open error"<<endl;
     return -1;
}
data.close();
return 0;
}
为什么程序运行显示  file open error  ,怎么修改才使它能打开。
搜索更多相关主题的帖子: 二进制 include ios 
2012-05-17 16:00
ZJQLOVELYY
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:105
专家分:166
注 册:2011-8-1
得分:2 
我觉得你应该去查下data.open("student"中这个student文件的后缀如student.txt或student.dat,,,dat好像是二进制文件的后缀
2012-05-17 22:20
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:2 
ios::in|ios::out|ios::binary 相当于 fopen 的 "r+b",也就是你这个文件必须存在,否则报错
fopen 的 "w+b" 则对应 ios::in|ios::out|ios_base::trunc|ios::binary,你试试看
2012-05-18 08:34
天使梦魔
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:37
帖 子:564
专家分:2754
注 册:2007-8-29
得分:2 
程序没问题

如果你的student是个txt文件的话,就用data.open("student.txt",ios::in|ios::out|ios::binary);
文件类型必须写全,除非你建个不带类型的文件叫这个名字
2012-05-18 08:45
非己莫属
Rank: 2
来 自:河南信阳
等 级:论坛游民
帖 子:13
专家分:14
注 册:2012-4-28
得分:0 
楼上,我又重新加后缀后,不管是"student.txt",还是"student.dat",结果还是file open error呀,为什么呀
2012-05-19 17:48
邋遢鬼
Rank: 2
等 级:论坛游民
帖 子:29
专家分:94
注 册:2011-5-29
得分:0 
您这种打开方式首先这个文件在exe的目录存在。
2012-05-29 08:44



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-367643-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.034333 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved