利用fgets和fputs实现文件内容复制
头文件:
#ifndef __COPY_H__
#define __COPY_H__
extern int CopyFile(const char *pfile1, const char *pfile2);
#endif
功能函数:
#include <stdio.h>
#include "copy.h"
int CopyFile(const char *pfile1, const char *pfile2)
{
FILE *fp1 = NULL;
FILE *fp2 = NULL;
char temp[4096] = {0};
char *ptemp = NULL;
fp1 = fopen(pfile1, "w");
if (fp1 == NULL)
{
goto error2;
}
fp2 = fopen(pfile2, "r");
if (fp2 == NULL)
{
goto error1;
}
while (1)
{
ptemp = fgets(temp, sizeof(temp), fp2);
if (ptemp == NULL)
{
break;
}
fputs(temp, fp1);
}
fclose(fp1);
fclose(fp2);
return 0;
error1:
fclose(fp1);
error2:
return -1;
}
主函数:
#include <stdio.h>
#include "copy.h"
int main(void)
{
char filename1[256] = {0};
char filename2[256] = {0};
int ret = 0;
printf("输入目的文件\n");
gets(filename1);
printf("输入源文件\n");
gets(filename2);
ret = CopyFile(filename1, filename2);
if (-1 == ret)
{
printf("拷贝失败\n");
}
printf("拷贝成功\n");
return 0;
}
利用fprintf和fscanf读取写入csv文件
#include <stdio.h>
int main(void)
{
FILE *fscore = NULL;
FILE *favg = NULL;
int ret = 0;
int score1 = 0;
int score2 = 0;
int score3 = 0;
double avg = 0;
fscore = fopen("score.csv", "r");
if (fscore == NULL)
{
goto err2;
}
favg = fopen("avg.csv", "w");
if (favg == NULL)
{
goto err1;
}
while (1)
{
ret = fscanf(fscore,"%d,%d,%d", &score1, &score2, &score3);
avg = (score1 + score2 + score3) / 3.0;
if (EOF == ret)
{
break;
}
fprintf(favg, "%.2lf\n", avg);
}
fclose(fscore);
fclose(favg);
return 0;
err1:
fclose(fscore);
err2:
return -1;
}