很奇怪,我在运行fopen函数用法出错,百思不得其解。文件路径正确,打开模式正确,就是读不出正确的数据

fopen函数,文件打开问题 -MFC- TryCatch
>> Content
fopen函数,文件打开问题
很奇怪,我在运行fopen函数出错,百思不得其解。文件路径正确,打开模式正确,就是读不出正确的数据,我进行调试,发现在运行fopen.c中的stream&=&_getstream()时,stream得到的流数据不正确。不知道是什么问题。请各位高手指点一下吧。
------Solutions------
贴代码看看~
------Solutions------
------Solutions------
通过getlasterror找问题吧,是不是文件权限的问题??
------Solutions------
引用&3&楼&&的回复:通过getlasterror找问题吧,是不是文件权限的问题??文件权限?
------Solutions------
CStringA&strReadA(m_Path);strcpy((char&*)Prg_file,strReadA);&f=fopen(Prg_file,"r");if(f&==&NULL){i=GetLastError();//当函数调用返回一个错误结果时,这个函数返回错误代码return&-1;}f的结果为:(*f)._file&0x(*f)._flag&&0x&&&其他的都为零,所以用getlasterror()函数,返回正确。
------Solutions------
为什么会这样?
------Solutions------
换其他文件呢?
------Solutions------
character&set&&=&&&use&muti-byte&character&set
------Solutions------
引用&7&楼&&的回复:换其他文件呢?打开其他文件也是这样,奇怪的是,我在其他程序中用相同的函数都没事,都可以正常打开。
------Solutions------
引用&7&楼&&的回复:换其他文件呢?打开其他文件也是这样,奇怪的是,我在其他程序中用相同的函数都没事,都可以正常打开。
------Solutions------
引用&10&楼&&的回复:引用&7&楼&&的回复:换其他文件呢?打开其他文件也是这样,奇怪的是,我在其他程序中用相同的函数都没事,都可以正常打开。看8L,你的字符集改下,改成多字节
------Solutions------
今天调试发现&fopen可以读出文件了,但是当执行到后面的fread函数时就出现:Tool.exe&中的&0x0fea43d7&(msvcr100d.dll)&处有未经处理的异常:&0xC0000005:&写入位置&0x&时发生访问冲突怎么回事?好像跟字符集没有关系,因为多字节和unicode字符集都是一样的结果。
------Solutions------
应该是程序的问题,&比如读的位置超出了文件的最大长度.
------Solutions------
引用&13&楼&&的回复:应该是程序的问题,&比如读的位置超出了文件的最大长度.不是文件大小问题。因为在其他程序中也用到了这个函数,读相同的文件,没有问题。不知道为什么这个函数用在这里不行。
------Solutions------
你调试进去看看fname是不是只显示了第一个字符?如果是,就是文件名的问题,我遇到的就是这个问题,不知道为什么没打开也不报错。我的解决方法之一个一个字符赋值给fname之后就可以打开了。

我要回帖

更多关于 c fopen函数 的文章

 

随机推荐