2014-10-04 20 views
-1

我希望它看起來像「自上次打開文件以來已經過了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 exists\n"); 
    }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
  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 exists\n"); 
    }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; 
} 
  • 您對浮點值的問題是不清楚,因爲沒有float變量在你的程序中,只有int
  • 相關問題