1,fgetc函数与fputc函数
fgetc:每次读取一个字符
fputc:向文件中写入一个字符
#include <stdio.h>
int main(int argc, const char *argv[])
{
if(argc != 3)
{
printf("忘记传递参数了!! \n");
return -1;
}
int ch;
FILE* fpr = fopen(argv[1], "r");
FILE* fpw = fopen(argv[2], "w");
if(fpr == NULL || fpw == NULL)
{
printf("fopen failed!!\n");
return -1;
}
//循环拷贝
//从一个文件中每读取出一个字符,就立刻写入另一个文件中
while(1)
{
ch = fgetc(fpr);//读取出一个字符
if(ch == -1) //读取失败
break;
fputc(ch, fpw);}
//关闭文件
fclose(fpr);
fclose(fpw);
return 0;
}
2,fgets函数与fputs函数
fgets:每次读取一行
fputs:每次写入一行
#include <stdio.h>
int main(int argc, const char *argv[])
{
if(argc != 3)
{
printf("忘记传递参数了!\n");
return -1;
}
char buf[100];
FILE* fpr = fopen(argv[1], "r");
FILE* fpw = fopen(argv[2], "w");
if(fpr == NULL || fpw == NULL)
{
printf("fopen failed!!\n");
return -1;
}
//循环拷贝
//从一个文件中每读取出一行字符串,就立刻写入另一个文件中
while(fgets(buf, 100, fpr) != NULL)//读取内容到buf
fputs(buf, fpw);//再将读取的buf写入另一个文件
fclose(fpr);
fclose(fpw);
return 0;
}
3,fread函数与fwrite函数
fread:以指定大小为单位读文件
fwrite:以指定大小为单位写文件
#include<stdio.h>
int main(int argc,const char* argv[])
{
int ret;
char buf[100] = { 0 };
if(argc != 3)
{
printf("忘记传递参数了!\n");
return -1;
}
FILE* fpr = fopen(argv[1],"r");
//只读打开
FILE* fpw = fopen(argv[2],"w");
//读写打开,该文件不存在就创建,存在先清空再打开
if(fpr == NULL || fpw == NULL)
{
perror("failed");
return -1;
}
//fread的返回值是实际读取到的块数
//读取多少块,就写入文件多少块
while((ret = fread(buf,1,100,fpr)) > 0 )
fwrite(buf,1,ret,fpw);
fclose(fpr);
fclose(fpw);
return 0;
}
运行演示