通过命令行传参的方式,传入文件名;计算一个文件的大小. 封装成函数
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<errno.h>
int fgets_lenth(const char *argv)
{
//打开
FILE *fp = fopen(argv,"a+");
if(NULL==fp){
printf("fopen函数运行失败\n");
return -1;
}
printf("函数运行成功\n");
int temp=0;
char str[128]="";
while(fgets(str,2,fp)!=NULL)
{
//读取一个字符
temp++;
}
//关闭
if(fclose(fp)==EOF){
perror("fclose");
return -1;
}
printf("fclose函数运行成功\n");
return temp;
}
int main(int argc, const char *argv[])
{
int flag=fgets_lenth(argv[1]);
printf("文件的大小为%d\n",flag);
return 0;
}
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int fgets_file(FILE*fp_r)
{
char str[128]="";
int sum=0;
while(fgets(str,sizeof(str),fp_r)!=NULL)
{
sum=sum+strlen(str);//取一次,加一次
}
return sum;
}
int main(int argc, const char *argv[])
{
if(argc<2)
{
fprintf(stderr,"在命令行传入文件名");
return -1;
}
//以读的方式源打开文件
FILE *fp_r=fopen(argv[1],"r");
if(NULL==fp_r)
{
perror("fopen");
return -1;
}
int temp=fgets_file(fp_r);
printf("%d\n",temp);
通过命令行传参的方式,传入文件名; 统计一个文件有几行。封装成函数
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<errno.h>
int fgets_line(const char *argv)
{
//打开
FILE *fp = fopen(argv,"a+");
if(NULL==fp){
printf("fopen函数运行失败\n");
return -1;
}
printf("函数运行成功\n");
int temp=0;
char str[128]="";
while(fgets(str,2,fp)!=NULL)
{
//读取一个字符
if(str[0]=='\n')
{
temp++;
}
}
//关闭
if(fclose(fp)==EOF){
perror("fclose");
return -1;
}
printf("fclose函数运行成功\n");
}
int main(int argc, const char *argv[])
{
int flag=fgets_line(argv[1]);
printf("文件的行数%d\n",flag);
return 0;
}
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int fgets_line(FILE*fp_r)
{
char str[128]="";
int sum=0;
while(fgets(str,sizeof(str),fp_r)!=NULL)
{
if(str[strlen(str)-1]=='\n')
{
sum++;
}
}
return sum;
}
int main(int argc, const char *argv[])
{
if(argc<2)
{
fprintf(stderr,"在命令行传入文件名");
return -1;
}
//以读的方式源打开文件
FILE *fp_r=fopen(argv[1],"r");
if(NULL==fp_r)
{
perror("fopen");
return -1;
}
int temp=fgets_line(fp_r);
printf("%d\n",temp);
fclose(fp_r);
return 0;
}