DAY23

1> 使用fgets统计一个文件的行号

  1 #include <stdio.h>
  2 #include<string.h>
  3 //计算行号
  4 
  5 int main(int argc, const char *argv[])
  6 {
  7 //  if(argc!=2)
  8 //  {
  9 //      printf("error");
 10 //      return 0;
 11 //  }
 12     //定义文件指针
 13     FILE *fp=NULL;
 14     //已只读的形式打开文件
 15     if((fp=fopen("./test.txt","r"))==NULL)
 16     {       perror("file open fail");
 17         return -1;
 18     }   
 19     //以只写的形式打开文件
 20 //  if((fp=fopen("./test.txt","w"))==NULL)
 21 //  {
 22 //      perror("file read fail");
 23 //      return -1;
 24 //  }                                                                                              
 25     //定义一个字符搬运工
 26     char buf[100] ={0};
 27     int num =0;
 28     while((fgets(buf,sizeof(buf),fp))!=NULL)
 29     {
 30         if(buf[strlen(buf)-1]=='\n')
 31         {
 32             num++;
 33         }   
 34     }   
 35     printf("文件有%d行\n",num);
 36     //关闭文件
 37     fclose(fp);
 38     
 39     return 0;
 40 }   

2> 使用fgets、fputs完成两个文件的拷贝

 #include <stdio.h>
  2 #include<string.h>
  3 //计算行号
  4 
  5 int main(int argc, const char *argv[])
  6 {
  7     if(argc != 3)
  8     {
  9         printf("error");
 10         return 0;
 11     }
 12     //定义文件指针
 13     FILE *srcfp,*destfp;
 14     //已只读的形式打开文件
 15    if((srcfp=fopen(argv[1],"w"))==NULL)
 16     {       perror("file open fail");
 17         return -1;
 18     }
 19     //将字符串输出到文件中
 20     fputs("hello world",srcfp);
 21 
 22     fclose(srcfp);
 23     //以只写的形式打开文件
 24     if((destfp=fopen(argv[2],"r"))==NULL)
 25     {
 26         perror("file read fail");
 27         return -1;
 28     }
 29 
 30     //定义一个字符搬运工
 31     char buf[100]="";
 32     while(1)
 33     {
 34     char *res=fgets(buf,sizeof(buf),srcfp);
 35     fputs(res,destfp);                                                                                                          
 36     if(res==NULL)
 37     {   
 38         printf("fail");
 39         break;
 40     }
 41     printf("%s\n",buf);
 42     }
 43     //关闭文件
 44     fclose(srcfp);
 45     fclose(destfp);
 46     
 47     return 0;

3> 向文件中输出当前的系统时间

  1 #include <stdio.h>
  2 #include<time.h>
  3 #include<unistd.h>                                                                                                              
  4 int main(int argc, const char *argv[])
  5 {
  6     FILE *fp =NULL;
  7     fp =fopen("./test.txt","w");
  8     if(fp==NULL)
  9     {
 10         perror("1110fail");
 11         return -1;
 12     }
 13     
 14     time_t sys_time =0;
 15     time(&sys_time);
 16     struct tm* t =localtime(&sys_time);
 17     char buf[128]="";
 18     while(1)
 19     {   
 20         if(t==NULL)
 21         {   
 22             perror("get-time");
 23             return -1;
 24         }
 25         sprintf(buf,"%4d-%02d-%02d  %02d:%02d:%02d\n",t->tm_year+1900,t->tm_mon+1,t->tm_mday,t->tm_hour,t->tm_min,t->tm_sec);
 26         printf("buf = %s\n",buf);
 27         fflush(fp);
 28         sleep(2);
 29      
 30     }
 31     
 32     
 33     return 0;
 34 }

思维导图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值