IO day1

https://note.youdao.com/s/XUE83bTFicon-default.png?t=N6B9https://note.youdao.com/s/XUE83bTF

使用fgets完成求一个文件的行号,使用fgets、fputs完成两个文件的拷贝

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, const char *argv[])
{

	//外部传参传入文件
	if(argc!=2){
		printf("input file error\n");
		printf("usage:./a.out fileName\n");
		return -1;
	}

	//打开两个文件,第一个为接收文件,第二个为传入文件
	FILE *fp;
	FILE *fp1;
	if((fp1=fopen("./aaa.c","w"))==NULL){
		perror("fopen error");
		return -1;
	}

	//注意!!!用argv[]时两边不要加双引号,因为参数为指针类型
	if((fp=fopen(argv[1],"r"))==NULL){

		perror("fopen error");	fclose(fp1);
		return -1;
	}

	//求传入文件长度,当提取字符串的倒数第二位为\n时,说明有换行
	char buf[21];
	int num=0;
	while(fgets(buf,sizeof(buf),fp)!=NULL){
		int len=strlen(buf)-1;
		if(buf[len]=='\n'){
			num++;
		}

		//将传入文件复制到接收文件中
		fputs(buf,fp1);
	}
	printf("该文件有%d行\n",num);

	//关闭文件
	fclose(fp);
	fclose(fp1);

	return 0;
}

 实现:

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值