作业:
1、将课堂程序重新敲一遍
2、使用fgets完成求一个文件的行号
3、使用fgets、fputs完成两个文件的拷贝
4、思维导图
2:使用fgets完成求一个文件的行号
代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, const char *argv[])
{
if(argc != 2)
{
printf("input file error\n");
printf("usage:./05test filename\n");
return -1;
}
//定义文件指针并打开文件
FILE *fp;
//以写的形式
if((fp=fopen(argv[1],"r"))==NULL)
{
perror("fopen error");
return -1;
}
//从文件中读取数据
char buf[5];
int count=0;
while(fgets(buf,sizeof(buf),fp)!=NULL)
{
count++;
// printf("%c ",buf);
}
printf("该文件有%d行\n",count);
//关闭文件
fclose(fp);
return 0;
}
结果:
3:使用fgets、fputs完成两个文件的拷贝
代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, const char *argv[])
{
//判断是否传入两个文件
FILE *fp_r;
FILE *fp_c;
if((fp_r=fopen("./01test.txt","r"))==NULL||(fp_c=fopen("08.txt","w"))==NULL)
{
perror("fopen error");
return -1;
}
char buf[100];
while(fgets(buf,sizeof(buf),fp_r)!=NULL)
{
fputs(buf,fp_c);
}
fclose(fp_r);
fclose(fp_c);
printf("拷贝成功\n");
return 0;
}
结果:
思维导图:https://mubu.com/app/edit/home/7nhes4__vGD#m