| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 10400 人关注过本帖
标题:[讨论]用fopen函数无法打开文件有哪几种情况
只看楼主 加入收藏
czl
Rank: 1
等 级:新手上路
帖 子:50
专家分:0
注 册:2007-7-1
收藏
 问题点数:0 回复次数:6 
[讨论]用fopen函数无法打开文件有哪几种情况

我这里有个文件复制的 函数 用的dev-cpp 却是无法打开 老是 this file can not open



#include <stdio.h>
void filecopy(FILE*in,FILE*out);

int main()
{
FILE *in;
FILE *out;
if((in=fopen("d1.dat","r"))==NULL)
{
printf("this file can not open");
exit(0);
}
if((out=fopen("d2.dat","w"))==NULL)
{
printf("this file can not open");
exit(0);
}
filecopy(in,out);
fclose(in);
fclose(out);
return 0;
}
void filecopy(FILE*in,FILE*out)
{
char ch;
ch=fgetc(in);
fputc(ch,out);
}


搜索更多相关主题的帖子: fopen 函数 文件 FILE 
2007-11-08 12:49
shlg1229
Rank: 1
等 级:新手上路
帖 子:107
专家分:0
注 册:2007-9-24
收藏
得分:0 
这种问题我也出现过,这个跟你用的编译器有关,我开始在Turbo C 里怎么都编译不过。但后来到Visual C++ 里一下就通过了

个人意见,不代表官方看法
2007-11-08 12:52
随心
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:12
帖 子:2577
专家分:250
注 册:2007-8-12
收藏
得分:0 
前提是d1.dat这个文件要存在哦

[此贴子已经被作者于2007-11-8 12:56:21编辑过]


天之道,利而不害。圣人之道,为而不争。信言不美,美言不信。善者不辩,辩者不善。知者不博,博者不知。
2007-11-08 12:55
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 

#include <stdio.h>
#include <stdlib.h> /* exit() */

void filecopy(FILE*in, FILE*out);

int main()
{
FILE *in;
FILE *out;
if((in=fopen("d1.dat","r"))==NULL) /* 这个模式下,d1.dat 必须存在 */
{
printf("this file can not open");
exit(0);
}
if((out=fopen("d2.dat","w"))==NULL)
{
printf("this file can not open");
exit(0);
}

filecopy(in,out);
fclose(in);
fclose(out);
return 0;
}

void filecopy(FILE*in,FILE*out) /* 这个函数只复制一个字符 */
{
char ch;
ch = fgetc(in); /* 从in,读取一个字符 */
fputc(ch, out); /* 输出一个字符到out */
}


/* 你的程序可以完全通过编译,但最好加上头文件<stdlib.h> */
/* d1.dat 必须存在(dat 是扩展名,最好让系统显示扩展名) */

图片附件: 游客没有浏览图片的权限,请 登录注册


[此贴子已经被作者于2007-11-8 13:23:56编辑过]


—>〉Sun〈<—
2007-11-08 13:12
czl
Rank: 1
等 级:新手上路
帖 子:50
专家分:0
注 册:2007-7-1
收藏
得分:0 

我都改了 可是 还是不行的 我用的dev-cpp 谢谢了 你讲的很详细 真的很感谢

2007-11-08 15:13
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 
以下是引用czl在2007-11-8 15:13:23的发言:

我都改了 可是 还是不行的 我用的dev-cpp 谢谢了 你讲的很详细 真的很感谢

我用的也是 DEV-C++ 我可以


d1.dat 不存在吧。(你看看 d1.dat 存在吗? 扩展名 d1.dat)

图片附件: 游客没有浏览图片的权限,请 登录注册



fopen() 接受两个参数,第一个是文件名字符串,第二个是打开方式
如果没有成功打开文件,fopen() 函数返回 NULL,
否则返回 FILE 指针

//--------------------------------------------------------------------//
// 表 13.1 fopen()函数的模式字符串 //
//--------------------------------------------------------------------//
// 模式字符串 | 意义 //
//--------------------------------------------------------------------//
// "r" | 打开一个文本文件,可以读取文件 //
//--------------------------------------------------------------------//
// "w" | 打开一个文本文件,可以写入文件,先将文件的长度截 //
// | 为零。如果该文件不存在则先创建之 //
//--------------------------------------------------------------------//
// "a" | 打开一个文本文件,可以写入文件,向已有文件的结尾 //
// | 追加内容,如果该文件不存在则先创建之 //
//--------------------------------------------------------------------//
// "r+" | 打开一个文本文件,可以进行更新(读取和写入) //
//--------------------------------------------------------------------//
// "w+" | 打开一个文本文件,可以进行更新(读取和写入),如 //
// | 果该文件存在则首先将其长度截为零;如果不存在则先 //
// | 创建之 //
//--------------------------------------------------------------------//
// "a+" | 打开一个文本文件,可以进行更新(读取和写入),向 //
// | 已有文件的尾部追加内容,如果该文件不存在则先创建 //
// | 之;可以读取整个文件,但写入时只能追加内容 //
//--------------------------------------------------------------------//
// "rb", "wb", | 与前面的模式相似,只是使用二进制模式而非文本模式 //
// "ab", "r+b", | 打开文件 //
// "w+b", "a+b", | //
// "rb+", "wb+", | //
// "ab+" | //
//--------------------------------------------------------------------//

[此贴子已经被作者于2007-11-8 17:35:17编辑过]


—>〉Sun〈<—
2007-11-08 17:29
czl
Rank: 1
等 级:新手上路
帖 子:50
专家分:0
注 册:2007-7-1
收藏
得分:0 

弄好了 谢了啊

2007-11-10 02:01
快速回复:[讨论]用fopen函数无法打开文件有哪几种情况
数据加载中...
 
   



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

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