fopen打开文件错误
我用fopen打开二进制文件,先用wb+,如果成功开始读写,如果失败用rb+打开,然后读写,如果再失败,退出程序,每次失败都会返回GetLastError(),有时候成功...
我用fopen打开二进制文件,先用wb+,如果成功开始读写,如果失败用rb+打开,然后读写,如果再失败,退出程序,每次失败都会返回GetLastError(),有时候成功,有时候两次都显示错误123。
查询后发现123是卷标或路径的语法错误,首先我针对的是同一文件,其次我用的路径是windows传给我的参数,应该不会出错吧,但是有时会出错,有时不会。请大神我为解答下。 展开
查询后发现123是卷标或路径的语法错误,首先我针对的是同一文件,其次我用的路径是windows传给我的参数,应该不会出错吧,但是有时会出错,有时不会。请大神我为解答下。 展开
6个回答
展开全部
【问题详细内容】用fopen打开二进制文件,先用wb+,如果成功开始读写,如果失败用rb+打开,然后读写,如果再失败,退出程序,每次失败都会返回GetLastError(),有时候成功,有时候两次都显示错误123。查询后发现123是卷标或路径的语法错误,首先针对的是同一文件,其次用的路径是windows传给我的参数,但是有时会出错,有时不会。是怎么 回事?
【解答】检查出错的时候,是不是文件名中有空格,或者有中文。如果是,那么就别用fopen了,用CFile类来代替吧。然后给程序里增加一些调试信息,当出错的时候,把文件名打印出来看看是否正确。发送方用的strlen()+1定义长度,这样可以把字符串尾部的结束符一起发送过去
【解答】检查出错的时候,是不是文件名中有空格,或者有中文。如果是,那么就别用fopen了,用CFile类来代替吧。然后给程序里增加一些调试信息,当出错的时候,把文件名打印出来看看是否正确。发送方用的strlen()+1定义长度,这样可以把字符串尾部的结束符一起发送过去
展开全部
你看看出错的时候,是不是文件名中有空格,或者有中文。
如果是,那么就别用fopen了,用CFile类来代替吧。
如果是,那么就别用fopen了,用CFile类来代替吧。
更多追问追答
追问
CFile类要调用MFC啊,我还没学MFC呢,fstream能支持中文吗?
追答
刚才百度了一下,fopen是可以支持中文名的。
你给程序里增加一些调试信息吧,当出错的时候,把文件名打印出来看看是否正确。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把你fopen()中的参数从r+改成 wr+ ,当前目录下不放数据文件,看看你的程序会把文件创建在哪,这样就清楚了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
file = false;
while(!file)
{
//读取文件名
file=!fopen("文件名",mode)
}
while(!file)
{
//读取文件名
file=!fopen("文件名",mode)
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2015-05-23 · 知道合伙人教育行家
关注
展开全部
详细说说呢?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询