1.使用fgets统计一个文件的行号
//使用fgets统计一个文件的行号
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
int main(int argc, const char *argv[])
{
if(argc<2) //获取文件名
{
printf("input errorn!");
printf("usage: ./a.out filen");
}
FILE *fp;
if( (fp=fopen(argv[1], "r"))==NULL ) //打开文件
{
perror("fopen");
return -1;
}
int count=0;
char buf[16] = ""; //定义fgets一次获取字符串
while(1)
{
if(fgets(buf, sizeof(buf), fp)==NULL) //判断是否到文件尾部了
{
break;
}
//printf("buf=%s", buf);
for(int i=0; buf[i]!=''; i++) //搜索n
{
if(buf[i]=='n')
{
count++;
//printf("count=%dn", count);
break;
}
}
}
printf("total lines=%dn", count);
fclose(fp); //关闭文件
return 0;
}
2.使用fgetsfputs拷贝两个文件
//使用fgetsfputs拷贝两个文件
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
int main(int argc, const char *argv[])
{
if(argc!=3)//获取目标,原文件名
{
printf("input files errornusage: ./a.out dest srcn");
return -1;
}
FILE *src;
FILE *dest;
if( (src = fopen(argv[1], "r"))==NULL ) //判断文件打开是否成功
{
perror("src fopen");
return -1;
}
if( (dest = fopen(argv[2], "w"))==NULL ) //判断文件打开是否成功
{
perror("dest fopen");
return -1;
}
char buf[4] = ""; //拷贝读取和写入的缓存
while( fgets(buf, sizeof(buf), src) != NULL) //读取+判断文件是否到尾部
{
fputs(buf, dest);//写入目标文件
}
fclose(src); //关闭文件
fclose(dest);
puts("copy successed!n");
return 0;
}
3. 思维导图
原文地址:https://blog.csdn.net/K_A_Wang/article/details/134742902
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_21332.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。