1. 用fgets和fputs实现文件的拷贝。
#include <stdlib.h>
#include <stdio.h>
int main(int argc, const char *argv[])
{
FILE *p = fopen(argv[1],"r");
FILE *q = fopen("./2.c","w");
if(NULL==p || NULL==q)
{
perror("fopen");
return -1;
}
char str[20];
while(1)
{
char *i = fgets(str,sizeof(str),p);
if(i==NULL)
{
break;
}
fputs(str,q);
}
fclose(p);
fclose(q);
return 0;
}
2. 用fgets实现计算一个文件有几行。
#include <stdlib.h>
#include <stdio.h>
int main(int argc, const char *argv[])
{
FILE *p = fopen(argv[1],"r");
if(NULL == p)
{
perror("fopen");
return -1;
}
int flag = 0;
char str[20];
char *ar = NULL;
while(1)
{
ar = fgets(str,sizeof(str),p);
int i=0;
while(str[i] != '\0')
{
if(str[i] == '\n')
{
flag++;
}
i++;
}
if(ar == NULL)
{
flag-=1;
break;
}
}
printf("Line : %d\n",flag);
fclose(p);
return 0;
}
3.用fgetc实现,计算一个文件有几行,要求封装成函数,用命令行传参。
#include <stdlib.h>
#include <stdio.h>
int main(int argc, const char *argv[])
{
FILE *p = fopen(argv[1],"r");
FILE *q = fopen("./2.c","w");
if(NULL==p || NULL==q)
{
perror("fopen");
return -1;
}
char str[20];
while(1)
{
char *i = fgets(str,sizeof(str),p);
if(i==NULL)
{
break;
}
fputs(str,q);
}
fclose(p);
fclose(q);
return 0;
}