2014-04-15 181 views
-1

我應該將小時,分鐘和秒轉換爲秒,但問題是該程序可以將輸入3種格式類型作爲輸入。第一種格式是54(意思是隻有54秒),有時格式爲45:56(意思是45分56秒),有時格式爲(12:35:12),意思是12小時35分鐘和12秒。例如,如果我要輸入這些數字,並將其轉換成秒我不知道什麼時候應該使用CIN字符「:」 我想這一個,但我不能輸入空格字符:如何將小時,分鐘和秒轉換爲秒

char a; 
int nr,arr[1000],cnt=0,sum=0; 
while (a==':') 
{ 
    cin>>nr>>a; 
    cnt++; 
    arr[cnt]=nr; 
} 
if (cnt==1) sum=arr[1]; 
if (cnt==2) sum=60*arr[1]+arr[2]; 
if (cnt==3) sum=3600*arr[1]+60*arr[2]+arr[3]; 
+0

這是什麼語言,以及它是如何與時區或計時器?請使用適當的標籤。謝謝。 –

+0

你能否明白我現在想說的話,因爲我做了一些修改 – Anonymous

+0

請用適用的語言標記問題,以便理解語言的人可以找到你的問題。它看起來像C++,但你永遠不知道。 –

回答

0

使用strtokatoi

#include <iostream> 
#include <cstring> 
#include <cstdlib> 
using namespace std; 

int main() { 
    char time[9]; 
    int sum; 

    cin>>time; 

    char *t1=strtok(time,":"); 
    char *t2=strtok(NULL,":"); 
    if (t2==NULL) 
     sum=atoi(t1); 
    else { 
     char *t3=strtok(NULL,":"); 
     if (t3==NULL) 
      sum=atoi(t1)*60+atoi(t2); 
     else 
      sum=atoi(t1)*3600+atoi(t2)*60+atoi(t3); 
    } 

    cout<<sum<<endl; 

    return 0; 
} 
+0

什麼時候輸入是1000000000:1000000000:1000000000,我只是想以格式顯示days:hours:minutes:seconds(not by %60,因爲我們不知道它是否只有秒或分秒,或小時,分鐘和秒) – Anonymous

+0

無法理解你在說什麼。 「1000000000:1000000000:1000000000」是什麼意思?你可以嘗試在另一個問題中提出這個問題。 –

相關問題