一个应该 return 结构的函数,我如何在 C++ 中打印这个结构?

A function that should return a struct, how can i print this struct in C++?

我正在使用 mbed 在线编译器编写程序并将其上传到 multitech mDot LoRa 收发器。我的程序基本上是关于将特定大小的数据包发送到网关。在我的程序结束时,我想获得一些关于通信的统计数据。所以我被告知使用一个名为 getStats() 的函数;它位于头文件之一 (mDot.h) 中。 mDot.h 关于此函数的所有内容如下:

class mDot { 
    public:
    typedef struct {
                uint32_t Up;
                uint32_t Down;
                uint32_t Joins;
                uint32_t JoinFails;
                uint32_t MissedAcks;
        } mdot_stats;

 // get current statistics
 // Join Attempts, Join Fails, Up Packets, Down Packets, Missed Acks

 mdot_stats getStats();

所以关于如何在我的 main.cpp 中调用此函数并获取在我的控制台屏幕上打印的值(Up、Down、Joins、JoinFails 和 MissedAcks)的任何想法。 非常感谢你的帮助,因为我真的需要这个..

诺曼

怎么样:

mDot::mdot_stats stats = dot->getStats();
printf("Number of uplink packets %d\n", stats.Up);

假设您有可用的 printf,您可以简单地执行以下操作:

void print(const mdot_stats& stats){
    printf("Join Attempts: %d,\t" stats.Joins);
    printf("Join Fails: %d,\t" stats.JoinFails);
    printf("Up Packets: %d,\t" stats.Up);
    printf("Down Packets: %d,\t" stats.Down);
    printf("Missed Acks: %d,\t" stats.MissedAcks);
}

否则,如果您有幸在嵌入式环境中拥有 ostream,您可以随时覆盖 << 运算符。