一、创建file1文件
1.代码
#include<stdio.h>
#include<stdlib.h>
int main()
{
FILE *p;
char filename[20];
printf("请输入文件名:");
scanf("%s",filename);//要回车但是遗留了
getchar();//用来消化最后的回车符 ,getchar的会 自动忽略回车
if((p=fopen(filename,"w"))==NULL){
printf("不能打开文件");
exit(0);//直接退出 必须要头文件stdlib.h
}
printf("请输入准备存储到磁盘的字符串(以#结束):");
char c=getchar();
while(c!='#'){
fputc(c,p);//存入文件然后回车
putchar(c);//写出到屏幕
c=getchar();
}
fclose(p);
return 0;
}
2.结果输入
打开代码文件夹下的file1.txt如下:
二、复制
1.思路:把file1文件的取出(读)到file2中(写)
2.代码
#include<stdio.h>
#include<stdlib.h>
int main()
{//解题思路从file1中挨个读入字符写到file2中
FILE *p1,*p2;
char infile[20],outfile[20];//读取的文件,写入的文件(复制到)
printf("请输入读取的文件名:");
scanf("%s",infile);
printf("请输入输出的文件名:");
scanf("%s",outfile);
//打开输入文件
if((p1=fopen(infile,"r"))==NULL){
printf("无法打开读取文件\n");
exit(0);
}
//打开输出文件
if((p2=fopen(outfile,"w"))==NULL){//写的这个文件没有可以自动创建
printf("无法打开输出文件\n");
exit(0);
}
char c=fgetc(p1);//先读一个
while(!feof(p1)){//当文件没有结束时 !feof(p1)
fputc(c,p2);//写入到 outfile中
putchar(c);//输出一下该字符作为检验
c=fgetc(p1);//循环读入
}
//putchar('\n');//显示完全部字符后换行
//关闭2个文件
fclose(p1);
fclose(p2);
return 0;
}