目的:
熟悉C语言的文本操作的相关的函数及其应用,掌握文件的打开与关闭,字符和字符串的读写以及文本文件的重写或者追加。
原理:
①运用函数对文本文件进行存储的操作。
②用fopen函数打开fgets输出一行fputc输出一个字符fseek操作文件指针操作文件指针fclose关闭文件switch函数进行选择性跳转。
代码:
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *fp1,*fp2;
char ch1[1000]={0},ch2;
int a,b;
fp1=fopen("D:\\daima\\dream01.txt","r"); //打开要读取的t1文本
printf("文本文件dream.01中的文本为:\n");
if(fp1==NULL) //判断文件是否存在
printf("文本文件dream01不存在\n");
printf("第一次输出dream01中的文本:\n"); //第一次对t1文本按行输出
while(fgets(ch1,1000,fp1)!=NULL)
printf("%s",ch1);
fseek(fp1,0L,0); //把文件指针指向文件首
printf("\n第二次输出dream01中的文本:\n"); //第二次是对t1文本按每个字符进行输出
while((ch2=fgetc(fp1))!=EOF)
{
printf("%c",ch2);
}
printf("\n请选择对dream02中的文本进行追加还是重写请输入1或2: 1 追加,2 重写\n");//输入要对t2文本重写还是追加
tiao: scanf("%d",&ch2); //创建goto要跳转到的位置
switch(ch2) //对t2用重写或者追加方式打开
{
case 1:fp2=fopen("D:\\daima\\dream02.txt","a");break;
case 2:fp2=fopen("D:\\daima\\dream02.txt","w");break;
default :printf("请输入1或者2\n");goto tiao;//若输入的不是1或者2.则跳转到tiao的位置
}
printf("要追加或重写几行?\n");
scanf("%d",&a); //输入要追加或重写几行文本
printf("请输入第一次要追加或重写的东西:\n");
for(b=0;b<a;b++) //输入文本
{
printf("第%d组:",b+1);
scanf("%s",ch1);
fputs(ch1,fp2);
fputs("\n",fp2);
}
if(ch2==1) //判断对t2的写的方式是重写还是追加
printf("追加完成");
else printf("重写完成");
fclose(fp1); //关闭文件f1
fclose(fp2); //关闭文件f2
}
结果:



结果分析:
先用读取一行一个的来读取dream01中的全部文本,然后用一个字符一个字符的读取,紧接着选择对文本dream02进行那种操作的方式并且选择要操作几行,其次对文本进行输入,最后最文本在dream02中输出。