如何从cin获取输入,由冒号分隔?

时间:2015-03-25 22:21:10

标签: c++ time

我正在尝试输入时间输入,如12:30:00,即小时:分钟:秒,然后将它们放入结构中。我使用cin但它只在我使用空间而不是像12 30 00的冒号时才有效。我如何使用冒号而不是空间?请尽可能简单地解决这个问题。

一个例子可能是:

struct time{
    int hour,minute,second;
    long acc_seconds;
}tm;

int main(){
cout <<"Please enter date as HH:MM:SS";
cin >> tm.hour>>tm.minute>>tm.second;
}

3 个答案:

答案 0 :(得分:3)

使用占位符对象阅读':'。将数字读入正确的对象。

char dummy;
cout << "Please enter date as HH:MM:SS";
cin >> tm.hour >> dummy >> tm.minute >> dummy >> tm.second;

答案 1 :(得分:2)

有时旧的更好

scanf("%d:%d:%d", &tm.hour, &tm.minute, &tm.second);

答案 2 :(得分:1)

您可以将时间存储在String中,然后根据2冒号的位置将其分为hr,min,sec,然后将其存储为3个整数。