IO-day1

C语言使用fgets和fputs进行文件读写及行数统计,
该程序演示了如何在C语言中使用fgets和fputs函数进行文件读写。它首先检查命令行参数是否正确,然后以读写模式打开源文件并只写模式打开目标文件。接着,程序展示了如何使用fputc和fgetc进行字符级别的文件复制,再用fputs和fgets统计并复制文件的行数。最后,程序计算并打印出源文件(test.txt)的行数。

1>使用fgets完成统计文件行号

2>使用fgets、fputs实现两个文件拷贝

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
int main(int argc, const char *argv[])
{
	//传参是否等于3
	if(argc!=3){
		printf("input error!\n");
		printf("usage: ./a.out srcfile dstfile\n");
		return -1;
	}
	//打开文件
	FILE *fp_read=fopen(argv[1],"w+");//以读写形式打开,若文件不存在则创建
	FILE *fp_wirte=fopen(argv[2],"w");//以只写方式打开,若文件不存在则创建
	//判断打开是否成功
	if(fp_read==NULL || fp_wirte==NULL){
		perror("openfile error");
		return -1;
	}

	char str[]="hello world\n";
	char ch;
	//fputc/fgetc的使用
	for(int i=0;i<strlen(str);i++){
		fputc(str[i],fp_read);
		ch=fgetc(fp_read);
		fputc(ch,fp_wirte);
	}
	//fputs/fgets的使用
	fputs(str,fp_read);
	fputs(str,fp_read);
	fputs(str,fp_read);
	fputs(str,fp_read);
	fclose(fp_read);//关闭文件,重置光标位置
	fp_read=fopen("./test.txt","r");//重置光标位置到头
	

	int count=0;
	char str2[20];
	while(fgets(str2,sizeof(str2),fp_read)!=NULL){
		if(str2[strlen(str2)-1]=='\n')
			count++;
		fputs(str2,fp_wirte);
	};
	printf("test.txt行数:%d\n",count);	



	//关闭文件
	fclose(fp_read);
	fclose(fp_wirte);
	return 0;
}

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值