fopen打开文件错误

我用fopen打开二进制文件,先用wb+,如果成功开始读写,如果失败用rb+打开,然后读写,如果再失败,退出程序,每次失败都会返回GetLastError(),有时候成功... 我用fopen打开二进制文件,先用wb+,如果成功开始读写,如果失败用rb+打开,然后读写,如果再失败,退出程序,每次失败都会返回GetLastError(),有时候成功,有时候两次都显示错误123。
查询后发现123是卷标或路径的语法错误,首先我针对的是同一文件,其次我用的路径是windows传给我的参数,应该不会出错吧,但是有时会出错,有时不会。请大神我为解答下。
展开
 我来答
雨晴世界

2015-07-16 · 用物理的观念理解世界
雨晴世界
采纳数:1313 获赞数:12371

向TA提问 私信TA
展开全部
【问题详细内容】用fopen打开二进制文件,先用wb+,如果成功开始读写,如果失败用rb+打开,然后读写,如果再失败,退出程序,每次失败都会返回GetLastError(),有时候成功,有时候两次都显示错误123。查询后发现123是卷标或路径的语法错误,首先针对的是同一文件,其次用的路径是windows传给我的参数,但是有时会出错,有时不会。是怎么 回事?
【解答】检查出错的时候,是不是文件名中有空格,或者有中文。如果是,那么就别用fopen了,用CFile类来代替吧。然后给程序里增加一些调试信息,当出错的时候,把文件名打印出来看看是否正确。发送方用的strlen()+1定义长度,这样可以把字符串尾部的结束符一起发送过去
cooke1234
2013-08-24 · TA获得超过6861个赞
知道大有可为答主
回答量:4617
采纳率:72%
帮助的人:3638万
展开全部
你看看出错的时候,是不是文件名中有空格,或者有中文。
如果是,那么就别用fopen了,用CFile类来代替吧。
更多追问追答
追问
CFile类要调用MFC啊,我还没学MFC呢,fstream能支持中文吗?
追答
刚才百度了一下,fopen是可以支持中文名的。
你给程序里增加一些调试信息吧,当出错的时候,把文件名打印出来看看是否正确。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
爱星期六的下午
2015-07-06 · TA获得超过1.4万个赞
知道大有可为答主
回答量:2336
采纳率:0%
帮助的人:1970万
展开全部
把你fopen()中的参数从r+改成 wr+ ,当前目录下不放数据文件,看看你的程序会把文件创建在哪,这样就清楚了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cgk663318
2015-05-20 · TA获得超过3076个赞
知道小有建树答主
回答量:328
采纳率:63%
帮助的人:48.5万
展开全部
file = false;
while(!file)
{
//读取文件名
file=!fopen("文件名",mode)
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
江老师88
2015-05-23 · 知道合伙人教育行家
江老师88
知道合伙人教育行家
采纳数:516 获赞数:2952
多次获得优秀教师,先进教育工作者的称号。所撰写的论文教案;制

向TA提问 私信TA
展开全部
详细说说呢?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式