uint8_t 到 String,导致无输出 C++(初级程序员)

uint8_t to String, leads to no output C++ (Beginner programer)

我是编程初学者,我正在尝试用 C++ 为 raspberry pi 构建一个程序,我从一个在控制台上输出 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;

它编译得很好,但是程序没有计算出任何东西,也许我采取了错误的方法,我查看了 Whosebug 以寻找先前提出的问题,但我似乎无法找到我理解的东西!哈哈,谢谢帮忙

您写道:

stringstream list;

所以我怀疑你在上面某处有一个 using namespace std;。问题是, std::list 存在并且是一种类型。在程序的其余部分,当您编写 list 时,可能会找到 std::list。我不知道结果如何,但我相信这不是你想的那样。

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