求,大师给指点下,程序运行正常但无法打开文件
int main(){
FILE* fp = fopen("./a.txt", "w+");
if (NULL == fp) {
perror("open");
return;
}
//fclose(fp);
return 0;
}
已启动生成…
1>------ 已启动生成: 项目: Project1, 配置: Debug Win32 ------
1>hellword.c
1>Project1.vcxproj -> D:\C-language\Clanguage\lian xi ce\Project1\Debug\Project1.exe
========== 生成: 成功 1 个,失败 0 个,最新 0 个,跳过 0 个 ==========
VS 2019,程序运行正常,文件也创建了,却无法打开文件,是怎么回事? 打不开是啥意思 本帖最后由 jhq999 于 2021-10-11 11:08 编辑
//fclose(fp);怎么把关闭文件给注释掉了?
独占而不是共享形式打开的文件不能被其他应用打开
转:
先看看见过的打开文件的几种方式:
mfc的CFile封装了windows API: CreateFile,这个函数好用但是只能在windows下用;
c++标准库:fstream,不太会用,有的帖子说这个对象在操作Unicode文本时会遇到困难,因时间原因先不做研究;
c标准库:fopen,boost库里打开文件用的好像就是这个函数,决定就用这个了。
fopen函数也是不满足要求的,因为现在要用共享模式打开文件,而msdn里也说了,这个函数是不支持共享的,所以改用这个函数的带共享模式参数的版本:_fsopen。
wp231957 发表于 2021-10-11 07:31
打不开是啥意思
就是不能打开a文件啊,{:5_109:} jhq999 发表于 2021-10-11 11:00
//fclose(fp);怎么把关闭文件给注释掉了?
独占而不是共享形式打开的文件不能被其他应用打开
注释了就可以看到文件有没有打开{:5_91:};结果文件就是不能打开是怎么回事? 有没有大师来指点下新手啊{:5_94:} 其实也可以说是程序认为已经打开文件了;但是就是找不到已经打开的文件,是怎么回事 zhenhaowa66 发表于 2021-10-11 14:31
其实也可以说是程序认为已经打开文件了;但是就是找不到已经打开的文件,是怎么回事
我实在不明白你的打不开是啥意思
我用你的代码是可以打开的虽然你没有在程序中FCLOSE()文件但是 随着该进程的结束,系统会帮你关闭
(当然了,自己要养成FCLOSE的习惯) wp231957 发表于 2021-10-11 14:43
我实在不明白你的打不开是啥意思
我用你的代码是可以打开的虽然你没有在程序中FCLOSE()文件但 ...
谢谢你耐心帮助,是我自己认知错了;{:5_91:};程序是没有问题的文件可以打开,也可以写入;我以为打开程序就像打开书本一样,可以看到文件被打开后待在那里{:5_109:}
页:
[1]