思维导图

一、读取文件,效果类似 cat 的功能
代码
#include <25041head.h>int main(int argc, const char *argv[])
{//打开文件printf("请输入你要读取的文件路径:");char str[128]="";scanf("%s",str);FILE *fp=fopen(str,"r");if(NULL==fp){ERRLOG("文件打开失败");}char buf[128]="";while(1){memset(buf,0,sizeof(buf));if(NULL==fgets(buf,sizeof(buf),fp))break;printf("%s",buf);}return 0;
}
运行结果

二、通过argc和argv输入文件名和路径,请实现文件的拷贝
代码
#include <25041head.h>int main(int argc, const char *argv[])
{FILE *fp=fopen(argv[1],"r");FILE *fp_new=fopen(argv[2],"w+");if(NULL==fp){ERRLOG("文件打开失败");}char buf[128]="";while(1){memset(buf,0,sizeof(buf));if(NULL==fgets(buf,sizeof(buf),fp))break;fputs(buf,fp_new);}if(EOF==fclose(fp)){printf("%s fclose error..\n",argv[1]);return -1;} if(EOF==fclose(fp_new)){printf("%s fclose error..\n",argv[2]);return -1;}printf("文件内容已成功拷贝\n");return 0;
}
运行结果

三、通过argc和argv输入文件名和路径,请计算文件的行数
代码
#include <25041head.h>int main(int argc, const char *argv[])
{FILE *fp=fopen(argv[1],"r");if(NULL==fp){ERRLOG("文件打开读取失败");}char buf;int line=0;while(1){buf=fgetc(fp);if(EOF==buf)break;if('\n'==buf)line++; }printf("文件 %s 的行数为 %d\n",argv[1],line);if(EOF==fclose(fp)){printf("fclose error..\n");return -1;}printf("fclose success..\n");return 0;
}
运行结果
