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





