uint8_t в строку, приводит к отсутствию вывода C++ (начинающий программист)

Я новичок в программировании, и я пытаюсь создать программу для Raspberry Pi на 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;

он компилируется нормально, однако программа ничего не делает, возможно, я использую неправильный подход, я искал stackru для ранее заданного вопроса, но я не могу найти то, что понимаю! хаха, спасибо за помощь

1 ответ

Решение

Вы написали:

stringstream list;

Так что я подозреваю, что у вас есть using namespace std; где-то выше. Дело в том, std::list существует и является типом. В оставшейся части вашей программы, когда вы пишете list, это может быть std::list который найден вместо Я не знаю, как это получится, но я уверен, что это не то, что вы думаете.

Вот почему using namespace std считается плохой практикой. Dont.

Другие вопросы по тегам