一、思维导图
标准IO和文件IO
IO的操作流程
二、课后习题
1、使用fgets统计给定文件的行号
#include<myhead.h>
#define MAX 256
int main(int argc, const char *argv[])
{
//判断终端输入
if(argc != 2)
{
printf("输入错误\n");
printf("usage:./a.out path/filename\n");
}
//定义文件类型结构体打开文件
FILE *fp = NULL;
if((fp = fopen(argv[1],"r")) == NULL)
{
perror("fopen error");
return -1;
}
//定义容器接收行数据
char buf[MAX];
//定义计数器
int count_line = 0;
while(fgets(buf,sizeof(buf),fp) != NULL)
{
count_line++;
}
//关闭文件
fclose(fp);
//输出行数
printf("line = %d\n",count_line);
return 0;
}
2、使用fgets、fputs完成两个文件的拷贝
#include<myhead.h>
#define MAX 256
int main(int argc, const char *argv[])
{
//判断终端输入
if(argc != 3)
{
printf("输入格式错误\n");
printf("usage:./a.out path/filename\n");
}
//定义文件类型结构体打开文件
FILE *src = NULL;
FILE *dest = NULL;
if((src = fopen(argv[1],"r")) ==NULL)
{
perror("fopen error:");
return -1;
}
if((dest = fopen(argv[2],"w")) ==NULL)
{
perror("fopen error:");
return -1;
}
//定义容器将src中的内容按行拷贝到dest中
char buf[MAX];
while(fgets(buf,sizeof(buf),src) != NULL)
{
fputs(buf,dest);
}
return 0;
}