鱼C论坛

 找回密码
 立即注册
查看: 1317|回复: 8

[已解决]求,大师给指点下,程序运行正常但无法打开文件

[复制链接]
发表于 2021-10-10 20:48:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
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,程序运行正常,文件也创建了,却无法打开文件,是怎么回事?
最佳答案
2021-10-11 11:00:09
本帖最后由 jhq999 于 2021-10-11 11:08 编辑

//fclose(fp);怎么把关闭文件给注释掉了?
独占而不是共享形式打开的文件不能被其他应用打开

转:
先看看见过的打开文件的几种方式:

mfc的CFile封装了windows API: CreateFile,这个函数好用但是只能在windows下用;
c++标准库:fstream,不太会用,有的帖子说这个对象在操作Unicode文本时会遇到困难,因时间原因先不做研究;
c标准库:fopen,boost库里打开文件用的好像就是这个函数,决定就用这个了。
fopen函数也是不满足要求的,因为现在要用共享模式打开文件,而msdn里也说了,这个函数是不支持共享的,所以改用这个函数的带共享模式参数的版本:_fsopen。

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-10-11 07:31:27 From FishC Mobile | 显示全部楼层
打不开是啥意思
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-10-11 11:00:09 | 显示全部楼层    本楼为最佳答案   
本帖最后由 jhq999 于 2021-10-11 11:08 编辑

//fclose(fp);怎么把关闭文件给注释掉了?
独占而不是共享形式打开的文件不能被其他应用打开

转:
先看看见过的打开文件的几种方式:

mfc的CFile封装了windows API: CreateFile,这个函数好用但是只能在windows下用;
c++标准库:fstream,不太会用,有的帖子说这个对象在操作Unicode文本时会遇到困难,因时间原因先不做研究;
c标准库:fopen,boost库里打开文件用的好像就是这个函数,决定就用这个了。
fopen函数也是不满足要求的,因为现在要用共享模式打开文件,而msdn里也说了,这个函数是不支持共享的,所以改用这个函数的带共享模式参数的版本:_fsopen。

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-10-11 13:19:09 | 显示全部楼层

就是不能打开a文件啊,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-10-11 13:22:52 | 显示全部楼层
jhq999 发表于 2021-10-11 11:00
//fclose(fp);怎么把关闭文件给注释掉了?
独占而不是共享形式打开的文件不能被其他应用打开

注释了就可以看到文件有没有打开;结果文件就是不能打开是怎么回事?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-10-11 13:25:17 | 显示全部楼层
有没有大师来指点下新手啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-10-11 14:31:56 | 显示全部楼层
其实也可以说是程序认为已经打开文件了;但是就是找不到已经打开的文件,是怎么回事
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-10-11 14:43:12 | 显示全部楼层
zhenhaowa66 发表于 2021-10-11 14:31
其实也可以说是程序认为已经打开文件了;但是就是找不到已经打开的文件,是怎么回事

我实在不明白你的打不开  是啥意思

我用你的代码  是可以打开的  虽然你没有在程序中FCLOSE()文件  但是 随着该进程的结束,系统会帮你关闭
(当然了,自己要养成FCLOSE的习惯)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-10-11 16:42:22 | 显示全部楼层
wp231957 发表于 2021-10-11 14:43
我实在不明白你的打不开  是啥意思

我用你的代码  是可以打开的  虽然你没有在程序中FCLOSE()文件  但 ...

谢谢你耐心帮助,是我自己认知错了;;程序是没有问题的文件可以打开,也可以写入;我以为打开程序就像打开书本一样,可以看到文件被打开后待在那里
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-22 14:41

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表