1> 使用fgets统计给定文件的行号
#include<myhead.h>
int main() {
FILE *file;
char line[100];
int lineCount = 0;
file = fopen("./231.c", "r");
if (file == NULL) {
perror("Error opening file");
return -1;
}
while (fgets(line, sizeof(line), file) != NULL) {
printf("Read line: %s", line);
lineCount++;
}
fclose(file);
printf("一共有: %d行\n", lineCount);
return -1;
}
2> 使用fgets、fputs完成两个文件的拷贝
两个方法只是while内部if的条件判断有区别
方法1
#include<myhead.h>
int main(int argc, const char *argv[])
{
FILE *src = NULL;
if((src = fopen("./04open.c","r"))==NULL)
{
perror("src errof");
return -1;
}
FILE *dest =NULL;
if((dest = fopen("./dest.txt","w+"))== NULL)
{
perror("dest error");
return -1;
}
char buf[100] = "";
while(1)
{
bzero(buf,sizeof(buf));
fgets(buf,sizeof(buf),src);
if(buf[0] == '\0')
{
break;
}
fputs(buf,dest);
}
printf("拷贝成功\n");
return 0;
}
方法2
#include<myhead.h>
int main(int argc, const char *argv[])
{
FILE *src = NULL;
if((src = fopen("./04open.c","r"))==NULL)
{
perror("src errof");
return -1;
}
FILE *dest =NULL;
if((dest = fopen("./dest.txt","w+"))== NULL)
{
perror("dest error");
return -1;
}
char buf[100] = "";
while(1)
{
bzero(buf,sizeof(buf));
if(fgets(buf,sizeof(buf),src)==NULL)
{
break;
}
fputs(buf,dest);
}
printf("拷贝成功\n");
return 0;
}