首页 > 解决方案 > uint8_t 转为字符串,导致无输出 C++(初级程序员)

问题描述

我是编程的初学者,我正在尝试用 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中查看了以前提出的问题,但我似乎找不到我理解的东西!哈哈,谢谢帮助

标签: c++stringraspberry-pi3uint8t

解决方案


你写了:

stringstream list;

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

这就是为什么using namespace std被认为是不好的做法。不。


推荐阅读