各位高手!!C语言中为什么用fopen函数打开文件错了!我用的是DEV!求解

#include<stdio.h>#include<iostream>#include<string>usingnamespacestd;intmain(){FILE*f... #include<stdio.h>
#include<iostream>
#include<string>
using namespace std;
int main()
{
FILE *fp1,*fp2;
char str1;
if((fp1 = fopen("E:\\编译原理\\datafile1.txt","r")) == NULL) // 打开并测试文件
{
cout<<"datafile1 cannot be opened "<<endl;
// exit(1);
}
if((fp2 = fopen("E:\\编译原理\\datafile2.txt","w")) == NULL) // 打开并测试文件
{
cout<<"datafile2 cannot be opened "<<endl;
exit(1);
}
while(!feof(fp1))
{
if((str1 = fgetc(fp1))&&(str1 != EOF))
fputc(str1,fp2);
else
;
}
fclose(fp1);
fclose(fp2);
system("pause");
return 0;
}
这是我的程序,程序目地是将一个文件里面的内容写到另外一个文件里面去!!
展开
 我来答
aven_yang
2012-05-07 · TA获得超过719个赞
知道小有建树答主
回答量:350
采纳率:100%
帮助的人:322万
展开全部
主要是下面这句,
if((fp1 = fopen("E:\\编译原理\\datafile1.txt","r")) == NULL) // 打开并测试文件
因为这是以读的方式打开,所以你的路径里确保要有E:\\编译原理\\datafile1.txt这个文件才行,否则出错。
第2个是以写的方式打开,会自动创建这个文件
追问
那个文件夹里面既有那个以读方式打开的文件,也有以写方式打开的文件!!
追答
嗯,是啊,但是在打开文件前,以读方式打开("r")的文件要先存在啊,否则打开失败。
但是以写的方式("w")打开文件,如果文件不存在就会创建一个。
技术蚂蚁
2012-05-10 · TA获得超过146个赞
知道小有建树答主
回答量:268
采纳率:0%
帮助的人:168万
展开全部
我觉得可能是路径不对,你的程序和要操作的文件放在一起不代表这路径是对的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
想了一半个小时
2012-05-08 · 超过28用户采纳过TA的回答
知道答主
回答量:131
采纳率:0%
帮助的人:68.4万
展开全部
你确定路径对吗?
更多追问追答
追问
这样跟你说吧!我那个程序和要操作的文件是放在一个文件夹里面的!昨天请一个同学给我调试一下,他成功的用C++的函数给我打开的文件,而fopen函数不行,他说可能是我的系统和这个函数有冲突所以才打不开的,并且这个函数我是照着书上输的
追答
首先,书上的东西就算它是对的,但有时会理解错误
书上的是没错,但是你的文件名错了,把你所定义的文件名的“.txt”去掉
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式