fgets获取文件的行号。
#include <myhead.h>
int main(int argc, const char *argv[])
{
//fgets获取文件的行号
FILE *fp = fopen("./1.txt", "r"); //已只读打开
if (NULL == fp)
{
perror("");
return -1;
}
char buf[5];
int count = 0, i;
while (NULL != fgets(buf, sizeof(buf), fp)) //判断是否到最后一行
{
for (i = 0; i < 5; i++)
{
if (buf[i]== '\n')
{
count++; //计行数
fputs(buf, stdout); //输出每一行的内容
break;
}
}
}
printf("%d\n", count); //输出行数
fclose(fp);
return 0;
}
结果
fgets和fputs拷贝文件。
#include <myhead.h>
int main(int argc, const char *argv[])
{
//fget和fputs拷贝文件
//用外部传参
if(argc != 3)//判断外部传参
{
puts("传入参数错误");
return -1;
}
FILE *fp1 = fopen("./1.txt","r");//已只读打开被拷贝的文件
if(NULL == fp1)
{
perror("");
return -1;
}
FILE *fp2 = fopen("./2.txt","w");//已只写打开要拷贝到的文件
if(NULL == fp2)
{
perror("");
return -1;
}
char buf[32];
while(NULL != fgets(buf,sizeof(buf),fp1))//拷贝操作
{
fputs(buf,fp2);//把buf中的字符串输入到文件
}
fclose(fp1);
fclose(fp2);
puts("拷贝成功");
fp2 = fopen("./2.txt","r");//只读方式打开文件
if(NULL == fp2)
{
perror("");
return -1;
}
while(NULL != fgets(buf,sizeof(buf),fp2))//遍历文件内容
{
fputs(buf,stdout);
}
fclose(fp2);
return 0;
}
结果
Xmind总结。