| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1298 人关注过本帖
标题:C语言打开文件出现错误窗口
只看楼主 加入收藏
pangshch
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:2
帖 子:443
专家分:1966
注 册:2013-4-9
收藏
得分:0 
回复 9楼 用户名詹姆斯
fopen()函数不安全可能是应为你建立的是C++的源文件 (后缀是.cpp).
2013-12-18 15:29
pangshch
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:2
帖 子:443
专家分:1966
注 册:2013-4-9
收藏
得分:0 
我只是说可能, 因为我复制你错误代码到VC6显示0错误, 0警告.(如版主所言, 逻辑错误不会引起编译器报错.)
2013-12-18 15:33
用户名詹姆斯
Rank: 2
等 级:论坛游民
帖 子:13
专家分:20
注 册:2013-7-15
收藏
得分:0 
回复 8楼 pangshch
还是打不开,它直接就退出了,  文件最后开始没有回车,后来加了回车也不行,我放在桌面的,然后又放在源文件夹中,也不行
2013-12-18 15:36
pangshch
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:2
帖 子:443
专家分:1966
注 册:2013-4-9
收藏
得分:0 
程序代码:
#include
#include
int main(void)
{
    char ch;
    FILE  * fp;
    fp=fopen("emp.txt","r+");           // 文件是否与源代码在一个文件夹内, 文件名是否一致.
    if(fp==NULL)                        // 这里是否修改
    {
        printf("Failed to open file.Bye\n");
        exit(1);
    }
    while((ch = fgetc(fp))!=EOF)          // 这里是否修改. 函数最好用fgetc(fp);
        putchar(ch);
    fclose(fp);
    return 0;
}
我运行是可以的, 只是图片贴不上来,  
附件只是我运行的图片.
新增Microsoft Word 文件 (2).rar (608.59 KB)
2013-12-18 17:03
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:0 
百度fopen_s


[fly]存在即是合理[/fly]
2013-12-18 17:41
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
如果你真想知道為什麼打不開文件,就用那個fopen_s()函數,它的返回值就是錯誤代碼,是標準的系統錯誤碼,這個代碼會告訴你到底是什麼原因打開文件失敗——這就是這個函數比古老的fopen()優越的地方。你在代碼中把fopen_s()函數的返回值打印出來,然後到網上搜索一下這個代碼是什麼意思,就知道打不開的原因了。

授人以渔,不授人以鱼。
2013-12-18 21:34
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
fopen_s()函數的用法:
FILE* fp;
errno_t error_code = fopen_s(&fp, "文件名字符串", "r");    // 注意fp參數前的&符號,不理解的話先照抄,以後慢慢會明白的

只有當error_code == 0時,文件才會打開成功。在Windows API中,函數返回零為成功,這是常規用法,最好熟悉了。不要再用那種NULL啦。

[ 本帖最后由 TonyDeng 于 2013-12-18 21:46 编辑 ]

授人以渔,不授人以鱼。
2013-12-18 21:40
鱼儿海
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:77
专家分:194
注 册:2013-8-14
收藏
得分:0 
路径写全试下
2013-12-19 18:24
犬虫门心本人
Rank: 2
等 级:论坛游民
帖 子:28
专家分:26
注 册:2013-12-19
收藏
得分:0 
fp=fopen("c:\emp.txt","r+");  
这里真的可以这样写么?
C语言中,\要用\\的啊
fp = fopen("c:\\emp.txt", "r+");
2013-12-19 18:35
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
學會自己排查問題的方法,比直接告訴他原因有用得多。

授人以渔,不授人以鱼。
2013-12-19 21:27
快速回复:C语言打开文件出现错误窗口
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.069080 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved