利用fgetc输出行数
#include<stdio.h>
#include<string.h>
#include<myhead.h>
int main(int argc, const char *argv[])
{
FILE *fp;
char arr[100];
char *p = NULL;
fp = fopen("./1.txt", "r");
if (fp == NULL)
{
perror("text.c");
return -1;
}
int num = 0;
while ((p = fgets(arr, 100, fp)) != NULL)
//利用了fgets读到\n后在文件末尾添加\0得特性来计算行数
{
while (*p != '\0')
{
if (*p == '\n')
{
num++;
}
p++;
}
}
printf("%d\n",num);
return 0;
}
利用fgets和fputs复制文件
#include<stdio.h>
#include<string.h>
#include<myhead.h>
int main(int argc, const char *argv[])
{
if(argc!=3)
{
printf("外部参数错误\n");
return -1;
}
FILE *fp1=fopen("./1.txt","r");
FILE *fp2=fopen("./2.txt","w");
char buff[100]={0};
char *p;
while(1)
{
if(fgets(buff,100,fp1)==NULL)
{
break ;
}
fputs(buff,fp2);
printf("成功\n");
}
fclose(fp1);
fclose(fp2);
fp2=fopen("./2.txt","r");
char rev[100];
while(1)
{
if(fgets(rev,100,fp2)==NULL)
{
break;
}
fputs(rev,stdout);
}
fclose(fp2);
return 0;
}