2014-04-15 150 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”是什么意思?你可以尝试在另一个问题中提出这个问题。 –

相关问题