代码之家  ›  专栏  ›  技术社区  ›  Noman

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

  •  0
  • Noman  · 技术社区  · 7 年前

    我正在使用mbed在线编译器编写一个程序,并将其上载到多技术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并在我的consle屏幕上打印值(Up、Down、Joins、JoinFails和MissedAcks)。 非常感谢你的帮助,因为我真的需要这个。。

    2 回复  |  直到 7 年前
        1
  •  0
  •   Jan Jongboom    7 年前

    怎么样:

    mDot::mdot_stats stats = dot->getStats();
    printf("Number of uplink packets %d\n", stats.Up);
    
        2
  •  0
  •   Michael Bartling    7 年前

    假设您有可用的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);
    }