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 的原因。不要。
我是编程初学者,我正在尝试用 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 的原因。不要。