如何将小时,分钟和秒转换为秒

时间:2014-04-15 20:11:13

标签: time

我应该将小时,分钟和秒转换为秒,但问题是程序可以将输入作为输入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];

1 个答案:

答案 0 :(得分: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;
}