函数名 | 调用形式 | 功能 |
fgetc | fgetc(fp) | 从fp指向的文件读入一个字符 |
fputc | fput(ch,fp) | 把字符ch写到文件指针变量fp所指向的文件中 |
-----------------------------------------------------------------------实例代码---------------------------------------------------------------------------
1、向文件添加数据
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *fp;
char ch,filename[20];
printf("请输入所用的文件名:");
scanf("%s",filename);
if((fp=fopen(filename,"a"))==NULL) //打开输出文件并使fp指向此文件
{
printf("无法打开文件\n"); //如果文件出错,就输出此文件无法打开的信息
exit(0); //终止程序
}
ch=getchar(); //用来接收最后输入的回车符
printf("请输入一个将要存储到磁盘的字符串(以#结束):");
ch=getchar(); //接收从键盘输入的第一个字符
while(ch!=‘#‘) //当输入‘#‘时结束循环
{
fputc(ch,fp); //向磁盘文件输出一个字符
putchar(ch); //将输出的字符显示在屏幕上
ch=getchar(); //再接收下一个从键盘输入的字符
}
fclose(fp); //关闭文件
putchar(10); //向屏幕输出一个换行符
return 0;
}
其中:
fp=fopen(filename,"a") 是指向文件添加数据
fp=fopen(filename,"w")是指向文件写数据
fp=fopen(filename,"r")是指读取文件的数据
----------------------------------------------------------------------分割线-------------------------------------------------------------------------------------
2、将in指向的文件中的数据复制到out指向的文件
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *in,*out; //定义指向FILE类型文件的指针变量
char ch,infile[20],outfile[20]; //定义两个字符数组,分别存放两个数据文件名
printf("输入输入文件的名字");
scanf("%s",infile); //输入一个输入文件的名字
printf("输入输出文件的名字");
scanf("%s",outfile); //输入一个输出文件的名字
if((in=fopen(infile,"r"))==NULL) //打开输入文件
{
printf("无法打开文件");
exit(0);
}
if((out=fopen(outfile,"w"))==NULL) //打开输出文件
{
printf("无法打开文件");
exit(0);
}
while(!feof(in)) //如果遇到输入文件的结束标志
{
ch=fgetc(in); //从输入文件读入一个字符,暂时放在变量ch中
fputc(ch,out); //将ch写到输出文件中
putchar(ch); //将ch显示在屏幕上
}
putchar(10); //完全显示后换行
fclose(in); //关闭文件
fclose(out);
return 0;
}
1)在访问磁盘文件时,是逐个字符进行的,访问完一个字节后,当前访问位置就指向下一个字符
2)为了知道对文件的访问是否完成,只需看文件读写位置是否移动到文件的末尾。用feof函数可以检查到文件读写位置标记是否移动到了末尾,既磁盘文件是否结束。如果是函数值为0。
3)运行结果是将将in指向的文件中的数据复制到out指向的文件。前提是in指向的文件必须存在,out指向的文件如果不存在就新建立一个文件
原文地址:https://www.cnblogs.com/jxxclj/p/8341109.html