
各位高手!!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;
}
这是我的程序,程序目地是将一个文件里面的内容写到另外一个文件里面去!! 展开
#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;
}
这是我的程序,程序目地是将一个文件里面的内容写到另外一个文件里面去!! 展开
3个回答
展开全部
主要是下面这句,
if((fp1 = fopen("E:\\编译原理\\datafile1.txt","r")) == NULL) // 打开并测试文件
因为这是以读的方式打开,所以你的路径里确保要有E:\\编译原理\\datafile1.txt这个文件才行,否则出错。
第2个是以写的方式打开,会自动创建这个文件
if((fp1 = fopen("E:\\编译原理\\datafile1.txt","r")) == NULL) // 打开并测试文件
因为这是以读的方式打开,所以你的路径里确保要有E:\\编译原理\\datafile1.txt这个文件才行,否则出错。
第2个是以写的方式打开,会自动创建这个文件
追问
那个文件夹里面既有那个以读方式打开的文件,也有以写方式打开的文件!!
追答
嗯,是啊,但是在打开文件前,以读方式打开("r")的文件要先存在啊,否则打开失败。
但是以写的方式("w")打开文件,如果文件不存在就会创建一个。
展开全部
我觉得可能是路径不对,你的程序和要操作的文件放在一起不代表这路径是对的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你确定路径对吗?
更多追问追答
追问
这样跟你说吧!我那个程序和要操作的文件是放在一个文件夹里面的!昨天请一个同学给我调试一下,他成功的用C++的函数给我打开的文件,而fopen函数不行,他说可能是我的系统和这个函数有冲突所以才打不开的,并且这个函数我是照着书上输的
追答
首先,书上的东西就算它是对的,但有时会理解错误
书上的是没错,但是你的文件名错了,把你所定义的文件名的“.txt”去掉
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询