首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

急C++ 怎么判断文件是否已打开

2012-04-14 
急!C++ 如何判断文件是否已打开?用CreateFile独占方式打开试过了,txt、ini、这些格式的不行。我需要一种能基

急!C++ 如何判断文件是否已打开?
用CreateFile独占方式打开试过了,txt、ini、这些格式的不行。我需要一种能基本判断所有格式的文件是否已打开的方法。请教各位高人。

[解决办法]
对二进制文件:
fstream iofile("stud.dat",ios::in|ios::out|ios::binary);//打开文件
if(!iofile)//如果打开失败
{ cerr<<"open error!"<<endl;//显示出错信息
abort();//程序退出
}
对ASCII文件文件:
ofstream outfile("f1.dat",ios::out);
if(!outfile) //如果打开失败,outfile返回0值
{
cerr<<"open error!"<<endl;
exit(1);
}
[解决办法]
根据打开函数 返回值就知道啊
[解决办法]

探讨

对二进制文件:
fstream iofile("stud.dat",ios::in|ios::out|ios::binary);//打开文件
if(!iofile)//如果打开失败
{ cerr<<"open error!"<<endl;//显示出错信息
abort();//程序退出
}
对ASCII文件文件:
ofstream outfile("f1.dat",ios::out)……

[解决办法]
这个什么格式有什么关系?
如果你使用记事本打开文件的话,那么,记事本并没有真正一直打开着这文件。很多编辑器都是这样子的,打开,读到内存里,然后关闭句柄。保存时,在打开,写到文件里,然后关闭句柄。
[解决办法]
自己写代码,打开句柄,然后再用createfile试试
C/C++ code
FILE *fp = fopen("f:/myfile.txt","r");//fclose(fp);HANDLE hFile;  hFile = CreateFile(TEXT("f:/myfile.txt"),    // file to open                   GENERIC_READ,          // open for reading                   0,       // share for reading                   NULL,                  // default security                   OPEN_EXISTING,         // existing file only                   FILE_ATTRIBUTE_NORMAL, // normal file                   NULL);                 // no attr. template if (hFile == INVALID_HANDLE_VALUE) {     printf("Could not open file (error %d)\n", GetLastError());    return 0;}
[解决办法]
探讨

对二进制文件:
fstream iofile("stud.dat",ios::in|ios::out|ios::binary);//打开文件
if(!iofile)//如果打开失败
{ cerr<<"open error!"<<endl;//显示出错信息
abort();//程序退出
}
对ASCII文件文件:
ofstream outfile("f1.dat",ios::out)……

[解决办法]

嗯, 5L的就可以

热点排行