【发布时间】:2021-02-14 11:06:57
【问题描述】:
我必须编写一个程序,其中我必须将 time(hh:mm:ss) 作为字符串输入并使用 : 作为分隔符并将小时、分钟和秒传递给结构时间,然后显示总数秒数。我已经编写了代码,但它给了我无法理解的错误。这是代码:
#include<iostream>
#include<string>
using namespace std;
struct time{
int hours;
int minutes;
int seconds;
void Print_in_Seconds(){
cout<<"Total Second: "<<hours*3600+minutes*60+seconds;
}
};
time Tokenized_time(string str)
{
time time_;
// Get hours
int hour1 = (int)str[1] - '0';
int hour2 = (int)str[0] - '0';
int hour = (hour2 * 10 + hour1 % 10);
int count=0;
int minute=0,second=0;
for (int i=3; i <= 7; i++){
if(i==3 || i==4){
minute=minute*10+((int)(str[i]-'0'));
}
else if(i==6 || i==7){
second=second*10+((int)(str[i]-'0'));
}
}
time_.hours=hour;
time_.minutes=minute;
time_.seconds=second;
return time_;
}
// Driver code
int main()
{
time time1;
cout<<"Enter Time- 00:00:00 Formate: ";
string str;
cin>>str;
time time1=Tokenized_time(str);
time1.print();
return 0;
}
这是我遇到的错误
有什么帮助吗?
【问题讨论】:
-
stackoverflow.com/questions/1452721/… 的一个很好的例子。
std::time已经作为一个函数存在并且你拉入了整个std命名空间。 -
@Darhuuk 我应该删除它吗?
-
不,你的问题在别处。
-
@Darhuuk 我也是这么想的,但还是complains。
-
这是 gcc 和 clang 中的一个错误。无论您是否使用
using namespace std,它们都会引入全局::time函数(他们绝对不应该这样做)。