目录
1.使用fgets统计一个文件的行号
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <errno.h>
//使用fgets统计一个文件的行
int main(int argc, const char *argv[])
{
if(argc!=2){
printf("输入格式错误!\n");
return -1;
}
FILE *fp=NULL;//定义文件指针
if((fp =fopen(argv[1],"r"))==NULL){ //判断文件是否打开成功
perror("fopen r");
return -1;
}
char buf[10] =""; //定义字符串搬运工
int count=0; //定义count计数
while(1){
//从文件中读取一个字符串
char *ptr=fgets(buf,sizeof(buf),fp);
if(ptr==NULL){
break;
}
//判断截取的字符串最后一个字符是否为'\n'
if(buf[strlen(buf)-1]=='\n'){
count++;
}
}
printf("文件的行数为:%d\n",count);
fclose(fp);
return 0;
}
2.使用fgets\fputs拷贝两个文件
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <errno.h>
//使用fgets\fputs拷贝两个文件
int main(int argc, const char *argv[])
{
//判断输入的文件个数是否为3
if(argc!=3){
printf("终端输入格式错误!\n");
return -1;
}
//定义文件指针打开拷贝的文件
FILE *fp=NULL;
if((fp =fopen(argv[1],"r"))==NULL){
perror("fopen");
return -1;
}
//定义文件指针打开目标文件
FILE *fp2=NULL;
if((fp2 =fopen(argv[2],"w"))==NULL){
perror("fopen");
return -1;
}
char buf[50]="";//定义字符串搬运工
while(1){
char *ptr=fgets(buf,sizeof(buf),fp);//从拷贝的文件中读取一个字符串
if(ptr==NULL){
break;
}
fputs(buf,fp2);//将字符串写入目标文件
}
printf("拷贝成功!\n");
fclose(fp);
fclose(fp2);
return 0;
}