求助:关于文件读写的问题
我在程序中用FILE* file=fopen("..\\a\\tt.dat","w")建立文件并向里面写入内容.有时候成功,有时候不成功,怎么回事?:(
然后在另一个函数里用FILE* file=fopen("..\\a\\tt.dat","r")想读取文件内容,结果打开文件总是不成功.
实在是不明白是怎么回事了,各位高手帮帮忙.
谢谢!
问题点数:20、回复次数:11Top
1 楼scxy(小熊)回复于 2004-11-03 22:55:10 得分 5
文件可能被其他程序打开,这个路径也有可能有问题,在VC里用调试模式运行的时候当前路径设置的是项目路径,最好用程序运行的路径,或指定路径Top
2 楼leonheartlee(Leon)回复于 2004-11-03 23:02:47 得分 0
同意楼上观点...
改改路径的写法试试
比如直接放在程序目录下
然后直接FILE* file=fopen("tt.dat","w")试试看
如果都能成功,那就是文件名写法问题了吧~Top
3 楼lbianxp(ian)回复于 2004-11-04 00:13:35 得分 0
楼上两位,我试过这些方法,可是仍旧不见效啊.
程序中好像有个默认路径,只写FILE* file=fopen("tt.dat","w")时也不是放在程序目录下,而是放在了程序目录中的一个子文件夹下面.
怎么回事啊?Top
4 楼leonheartlee(Leon)回复于 2004-11-04 00:31:16 得分 0
不如试试fstream或者CFile类来进行文件操作?Top
5 楼mybios(俊俊哥哥)回复于 2004-11-04 00:47:38 得分 5
你这个相对路径在程序运行期间可能会改变,所以,请用绝对路径。Top
6 楼lbianxp(ian)回复于 2004-11-04 01:01:07 得分 0
to mybios(俊俊哥哥)
运行期间怎么能改变?打开文件后都要调用fclose()关闭文件的
fstream怎么用??Top
7 楼mybios(俊俊哥哥)回复于 2004-11-04 01:04:38 得分 5
例如,运行期间你调用CFileDialog就有可能改变运行期间的路径。
fstream没用过。呵呵。。是标准C++里的东西,建议你拿本C++的书看看。Top
8 楼linxy2002(BugSlayer)回复于 2004-11-04 09:14:56 得分 0
把你的代码贴出来看看到底是那错了,有可能是其它的地方或很简单的错误,Top
9 楼JaeBear(熊)回复于 2004-11-04 09:32:09 得分 5
是不是跟文件的打开方式有关?
我以前用CFile类对象来打开一个文本,打开方式用的是“CFile::modeCreate | CFile::modeReadWrite”,每次可以打开,可以读写,但是关闭后再次打开时又被重新Create成一个新文件了,所以文本原本记录的内容都没有了。后来在原来打开方式的基础上多加了一个“CFile::modeNoTruncate”才解决问题Top
10 楼lbianxp(ian)回复于 2004-11-06 10:09:07 得分 0
应该不是楼上所说的问题,可能是在运行过程中路径改变了吧。Top
11 楼72193(夺命飞刀)回复于 2004-11-06 10:17:22 得分 0
肯定是,运行时候,把 当前路径 改变,导致相对路径寻址出错.
所以,才会有时成功,有时失败.Top




