求教一个VSC++中变量的问题

DDSMJB 2018-01-22 10:13:45
各位大神,本人纯小白,现需要修改一个程序,是其可以printf出带有dev.address为前缀的数据。程序部分如下:
#include <string>
#include <vector>
#include <list>
#include <iterator>
#include <iostream>
#include <functional>

#include "libSuyunBleInvoker.h"
#include "SUYUN_WBLE_Callback.h"

libSuyunBleInvoker invoker;

std::vector<BTDevice> scaned_devices;

int connect_index = 0;

void OnScanResult( std::list<BTDevice>* devices ) {
// clear out of date devices infomation
scaned_devices.clear();

// save devices infomation
std::copy( devices->begin(), devices->end(), std::back_inserter( scaned_devices ) );

// print device infomation
if( scaned_devices.size() > 0 ) {
printf( "Scan Result:\n" );

for( auto & dev : scaned_devices ) {
printf( "Device: %s, %s, %ddBm\n", dev.name, dev.address, dev.rssi );
}

// connect sensor one by one, when connected or not, it calls OnEvent function
invoker.connect_device( connect_index, scaned_devices[ connect_index ].address );
} else {
printf( "No device found.\n" );
}
}

// print quaternion components received from ble sensor
void OnData( const int dev_index, float qx, float qy, float qz, float qw, const int sr, const int bp ) {
printf( "#%s -> %.6f, %.6f, %.6f, %.6f\n", dev.address, qx, qy, qz, qw );
}

最后程序我改了,但是告诉我dev没有定义,请问如何定义一下,可以输出dev.address, qx, qy, qz, qw。。(一开始是printf( "#%n -> %.6f, %.6f, %.6f, %.6f\n",dev_index , qx, qy, qz, qw )).
...全文
361 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2018-01-24
  • 打赏
  • 举报
回复
最后少一个}
DDSMJB 2018-01-24
  • 打赏
  • 举报
回复
引用 11 楼 zhao4zhong1 的回复:
void OnData(const int dev_index, float qx, float qy, float qz, float qw, const int sr, const int bp) {
FILE *f;
printf("#%d -> %s, %.6f, %.6f, %.6f, %.6f\n", dev_index, scaned_devices[dev_index].address, qx, qy, qz, qw);
const int N = 1;
static char nad[N][256];
static float nqx[N];
static float nqy[N];
static float nqz[N];
static float nqw[N];
int i;
if (0 <= dev_index && dev_index<N) {
strncpy(nad[dev_index],scaned_devices[dev_index].address,255);nad[dev_index][255]=0;
nqx[dev_index] = qx;
nqy[dev_index] = qy;
nqz[dev_index] = qz;
nqw[dev_index] = qw;
f = fopen("d:\\mydata.txt", "w");
for (i = 0;i<N;i++) {
fprintf(f, "%d, %s, %.6f, %.6f, %.6f, %.6f\n", i, nad[i], nqx[i], nqy[i], nqz[i], nqw[i]);
}
fclose(f);
} else {
printf("#%d not in [0..%d]!\n", dev_index, N - 1);
}



用上之后,后面的语句报错了
  • 打赏
  • 举报
回复
老赵本姓刘,刘一手
  • 打赏
  • 举报
回复
你怎么保存的,看起来只保存了最后一条数据。
askunix_hjh 2018-01-23
  • 打赏
  • 举报
回复
http://blog.csdn.net/m0_37925202
赵4老师 2018-01-23
  • 打赏
  • 举报
回复
void OnData(const int dev_index, float qx, float qy, float qz, float qw, const int sr, const int bp) {
    FILE *f;
    printf("#%d -> %s, %.6f, %.6f, %.6f, %.6f\n", dev_index, scaned_devices[dev_index].address, qx, qy, qz, qw);
    const int N = 1;
    static char  nad[N][256];
    static float nqx[N];
    static float nqy[N];
    static float nqz[N];
    static float nqw[N];
    int i;
    if (0 <= dev_index && dev_index<N) {
        strncpy(nad[dev_index],scaned_devices[dev_index].address,255);nad[dev_index][255]=0;
        nqx[dev_index] = qx;
        nqy[dev_index] = qy;
        nqz[dev_index] = qz;
        nqw[dev_index] = qw;
        f = fopen("d:\\mydata.txt", "w");
        for (i = 0;i<N;i++) {
            fprintf(f, "%d, %s, %.6f, %.6f, %.6f, %.6f\n", i, nad[i], nqx[i], nqy[i], nqz[i], nqw[i]);
        }
        fclose(f);
    } else {
        printf("#%d not in [0..%d]!\n", dev_index, N - 1);
    }
DDSMJB 2018-01-23
  • 打赏
  • 举报
回复
引用 9 楼 DelphiGuy 的回复:
f = fopen("d:\\mydata.txt", "w"); 这样会每次清空之前的数据,改成: f = fopen("d:\\mydata.txt", "a+");
我就是需要清空,只保留最新的,主要现在是数据错乱,都不对了。
  • 打赏
  • 举报
回复
f = fopen("d:\\mydata.txt", "w"); 这样会每次清空之前的数据,改成: f = fopen("d:\\mydata.txt", "a+");
DDSMJB 2018-01-23
  • 打赏
  • 举报
回复
引用 7 楼 DelphiGuy 的回复:
你怎么保存的,看起来只保存了最后一条数据。
void OnData(const int dev_index, float qx, float qy, float qz, float qw, const int sr, const int bp) { FILE *f; printf("#%d -> %s, %.6f, %.6f, %.6f, %.6f\n", dev_index, scaned_devices[dev_index].address, qx, qy, qz, qw); const int N = 1; static float nqx[N]; static float nqy[N]; static float nqz[N]; static float nqw[N]; int i; if (0 <= dev_index && dev_index<N) { nqx[dev_index] = qx; nqy[dev_index] = qy; nqz[dev_index] = qz; nqw[dev_index] = qw; f = fopen("d:\\mydata.txt", "w"); for (i = 0;i<N;i++) { fprintf(f, "%d, %.6f, %.6f, %.6f, %.6f\n", i, nqx[i], nqy[i], nqz[i], nqw[i]); } fclose(f); } else { printf("#%d not in [0..%d]!\n", dev_index, N - 1); }
幻夢之葉 2018-01-22
  • 打赏
  • 举报
回复
void OnData( const int dev_index, float qx, float qy, float qz, float qw, const int sr, const int bp ) { printf( "#%s -> %.6f, %.6f, %.6f, %.6f\n", dev.address, qx, qy, qz, qw ); } 你参数没有给出dev这个变量,还有这只是打印函数,你需要什么信息你要给出,而不是沿用不符合的人家的参数列表。 建议你去看看C++基础,否则,那你之后有任何改动遇到的此类低级别的问题也很难解决
DDSMJB 2018-01-22
  • 打赏
  • 举报
回复
引用 5 楼 DelphiGuy 的回复:
呃,那是我忘记把dev删掉了:
void OnData( const int dev_index, float qx, float qy, float qz, float qw, const int sr, const int bp ) {
printf( "#%s -> %.6f, %.6f, %.6f, %.6f\n", scaned_devices[dev_index].address, qx, qy, qz, qw );
}


您好,我现在加入了一个保存数据的语句,最终目的是5个传感器接收的数据到保存下来。保存下来1组5个传感器的数据,就刷新一下文件。结果保存文件出了问题。
  • 打赏
  • 举报
回复
呃,那是我忘记把dev删掉了: void OnData( const int dev_index, float qx, float qy, float qz, float qw, const int sr, const int bp ) { printf( "#%s -> %.6f, %.6f, %.6f, %.6f\n", scaned_devices[dev_index].address, qx, qy, qz, qw ); }
DDSMJB 2018-01-22
  • 打赏
  • 举报
回复
引用 3 楼 DelphiGuy 的回复:
void OnData( const int dev_index, float qx, float qy, float qz, float qw, const int sr, const int bp ) { printf( "#%s -> %.6f, %.6f, %.6f, %.6f\n", scaned_devices[dev_index].dev.address, qx, qy, qz, qw ); }
您好,现在dev.address这里显示class"_BTDevice"has no member"dev"...
  • 打赏
  • 举报
回复
void OnData( const int dev_index, float qx, float qy, float qz, float qw, const int sr, const int bp ) { printf( "#%s -> %.6f, %.6f, %.6f, %.6f\n", scaned_devices[dev_index].dev.address, qx, qy, qz, qw ); }
DDSMJB 2018-01-22
  • 打赏
  • 举报
回复
来个大神帮我改一下,谢谢了

64,692

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧