#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;
}
这是我的程序,程序目地是将一个文件里面的内容写到另外一个文件里面去!!
那个文件夹里面既有那个以读方式打开的文件,也有以写方式打开的文件!!
追答嗯,是啊,但是在打开文件前,以读方式打开("r")的文件要先存在啊,否则打开失败。
但是以写的方式("w")打开文件,如果文件不存在就会创建一个。
这样跟你说吧!我那个程序和要操作的文件是放在一个文件夹里面的!昨天请一个同学给我调试一下,他成功的用C++的函数给我打开的文件,而fopen函数不行,他说可能是我的系统和这个函数有冲突所以才打不开的,并且这个函数我是照着书上输的
追答首先,书上的东西就算它是对的,但有时会理解错误
书上的是没错,但是你的文件名错了,把你所定义的文件名的“.txt”去掉
我刚试了一下!还是不行!不过,还是谢谢你!!
追答你这样试一下:把if((fp2 = fopen("E:\\编译原理\\datafile2.txt","w")) == NULL) 放到前面,看创建的文件名是什么样的,然后仿照生成的文件名新建文件datafile1
另外由于没有#include 头文件,exit函数是没有定义的