uint8_t转换为String,导致无输出C ++(入门程序员)

时间:2018-12-05 17:32:18

标签: c++ string raspberry-pi3 uint8t

我是编程的初学者,我正在尝试为C ++构建树莓派的程序,我从一个在控制台上输入UID的程序开始

for(byte i = 0; i < mfrc.uid.size; ++i)
{
    if(mfrc.uid.uidByte[i] < 0x10)
    {
        printf(" 0");
        printf("%X",mfrc.uid.uidByte[i]);
    }
    else
    {
        printf(" ");
        printf("%X", mfrc.uid.uidByte[i]);
    }
}

现在我想更改它以输出可以由另一个程序调用的字符串。所以我将代码更改为

stringstream list;
for(byte i = 0; i < mfrc.uid.size;++i)
{
    list << (int)mfrc.uid.uidByte[i];
}
string s = list.str();
cout << s;

它可以很好地编译,但是程序没有提示任何东西,也许我采用了错误的方法,我在stackoverflow周围查找了先前提出的问题,但是我似乎找不到我理解的东西!哈哈,谢谢你的帮助

1 个答案:

答案 0 :(得分:1)

您写道:

stringstream list;

因此,我怀疑您上方有using namespace std;。事实是,std::list存在并且是一种类型。在程序的其余部分中,当您编写list时,可能找到的是std::list。我不知道结果如何,但是我有信心这不是您的想法。

这就是using namespace std is considered bad practice的原因。不要。