c-如何将上次打开文件后的秒数转换为小时、分钟和秒数

  • 本文关键字:转换 小时 分钟 文件 c time
  • 更新时间 :
  • 英文 :


我希望它看起来像"距离上次打开文件已经00小时00分43秒了。"。我怎样才能使数字保持整数,而不是浮点?

#include <stdio.h>
#include <time.h>
int main(){
    int result,h,m,currentTime,previousTime;
    FILE *fp;
    currentTime=time(NULL);
    result=currentTime-previousTime;
    h=(result/3600);
    m=(result/60);

    fp=fopen("aeg.txt","r");
    if(fp==NULL){
        printf("No such file existsn");
    }else{
        fscanf(fp,"%d",&previousTime);
        printf("It's been %d hours, %d minutes and %d seconds since you last opened the file",h,m,result);
        fclose(fp);
    }
        fp=fopen("aeg.txt","w");
        fprintf(fp,"%d",currentTime);
        fclose(fp);
    return 0;
}
  1. 您的previousTime变量未初始化,这会导致result错误

更改程序中语句的顺序就足以解决此问题。

#include <stdio.h>
#include <time.h>
int main(){
    int result,h,m,currentTime,previousTime;
    FILE *fp;
    fp=fopen("aeg.txt","r");
    if(fp==NULL){
        printf("No such file existsn");
    }else{
        fscanf(fp,"%d",&previousTime);
        fclose(fp);
    }
    currentTime=time(NULL);
    result=currentTime-previousTime;
    h=(result/3600);
    m=(result/60);
    printf("It's been %d hours, %d minutes and %d seconds since you last opened the file",h,m,result);
    fp=fopen("aeg.txt","w");
    fprintf(fp,"%d",currentTime);
    fclose(fp);
    return 0;
}
  1. 您关于浮点值的问题不清楚,因为程序中没有float变量,只有int

最新更新