C++ 需要关于指针和程序运行时间的建议。如何修复无效操作数和无法转换错误?

C++ 需要关于指针和程序运行时间的建议。如何修复无效操作数和无法转换错误?,c++,pointers,struct,C++,Pointers,Struct,我正试图编写一个程序,告诉用户两次输入之间的差异。我不知道该怎么办。我得到了错误: 第27行|错误:“int”和“const MyTime*”类型的操作数对二进制运算符-”无效| 第39行|错误:无法将参数“1”的“MyTime”转换为“const MyTime*”,将其转换为“int determineeepressedtime(const MyTime*,const MyTime*)”| 在这个问题上我也需要很多帮助。我没有一个好的课程,我的教科书就像是编程的笔记。这将是我在这所大学的最后一

我正试图编写一个程序,告诉用户两次输入之间的差异。我不知道该怎么办。我得到了错误:

第27行|错误:“int”和“const MyTime*”类型的操作数对二进制运算符-”无效|

第39行|错误:无法将参数“1”的“MyTime”转换为“const MyTime*”,将其转换为“int determineeepressedtime(const MyTime*,const MyTime*)”|

在这个问题上我也需要很多帮助。我没有一个好的课程,我的教科书就像是编程的笔记。这将是我在这所大学的最后一节课。我使用的C++ TEZToBook(我自己不为类)是山姆的C++一天一小时。
#include <iostream>
#include<cstdlib>
#include<cstring>

using namespace std;
struct MyTime { int hours, minutes, seconds; };
int DetermineElapsedTime(const MyTime *t1, const MyTime *t2);

long t1, t2;

int DetermineElapsedTime(const MyTime *t1, const MyTime *t2)
{
    return((int)t2-t1);
}


int main(void)
{
    char delim1, delim2;
    MyTime tm, tm2;
    cout << "Input two formats for the time. Separate each with a space. Ex: hr:min:sec\n";
    cin >> tm.hours >> delim1 >> tm.minutes >> delim2 >> tm.seconds;
    cin >> tm2.hours >> delim1 >> tm2.minutes >> delim2 >> tm2.seconds;

    DetermineElapsedTime(tm, tm2);

    return 0;

}
#包括
#包括
#包括
使用名称空间std;
结构MyTime{int小时,分钟,秒;};
int determinateeReleasedTime(常量MyTime*t1,常量MyTime*t2);
长t1,t2;
int determinateeReleasedTime(常量MyTime*t1,常量MyTime*t2)
{
返回((int)t2-t1);
}
内部主(空)
{
煤焦delim1,delim2;
MyTime tm,tm2;
cout>tm.hours>>delim1>>tm.minutes>>delim2>>tm.seconds;
cin>>tm2.hours>>delim1>>tm2.minutes>>delim2>>tm2.seconds;
确定失效时间(tm,tm2);
返回0;
}

我必须先纠正错误。有人有什么想法吗?

请看一下您的
determiniteeReleasedTime
实现

struct MyTime { int hours, minutes, seconds; };

...

int DetermineElapsedTime(const MyTime *t1, const MyTime *t2)
{
    return((int)t2-t1);
}
编译器应该如何知道你对这行的意思

    return((int)t2-t1);
不能简单地减去这两个结构。你必须自己实现这一点

编辑:

你最好用

int DetermineElapsedTime(MyTime &t1, MyTime &t2)

这是C++的类似。

我的结局是(仍然丑陋,但目前只剩下主要问题)

您仍然需要在
MyTime
结构中找到数据减法的解决方案

#include <iostream>
#include<cstdlib>
#include<cstring>

using namespace std;
struct MyTime { int hours, minutes, seconds; };


int DetermineElapsedTime(MyTime &t1, MyTime &t2)
{
    // TODO: This is not correct! Implement the correct way.
    return((int)t2-t1);
}

int main(void)
{
    char delim1, delim2;
    MyTime tm, tm2;
    cout << "Input two formats for the time. Separate each with a space. Ex: hr:min:sec\n";
    cin >> tm.hours >> delim1 >> tm.minutes >> delim2 >> tm.seconds;
    cin >> tm2.hours >> delim1 >> tm2.minutes >> delim2 >> tm2.seconds;

    DetermineElapsedTime(tm, tm2);

    return 0;

}
#包括
#包括
#包括
使用名称空间std;
结构MyTime{int小时,分钟,秒;};
int determinateeReleasedTime(MyTime和t1、MyTime和t2)
{
//TODO:这不正确!请以正确的方式执行。
返回((int)t2-t1);
}
内部主(空)
{
煤焦delim1,delim2;
MyTime tm,tm2;
cout>tm.hours>>delim1>>tm.minutes>>delim2>>tm.seconds;
cin>>tm2.hours>>delim1>>tm2.minutes>>delim2>>tm2.seconds;
确定失效时间(tm,tm2);
返回0;
}

I尝试返回((int)(*t2-*t1);但这仍然不能解决很多问题。请考虑一下,您将时间存储在结构中的三个不同位置。您必须为
MyTime
结构实现此操作。因此,我的下一个问题是,对于任何其他基元类型,“-”都没有定义。您需要在truct,或者对结构的成员而不是结构本身进行计算。谢谢你,Valek,我理解