uint8_t в строку, приводит к отсутствию вывода C ++ (начинающий программист) - PullRequest
0 голосов
/ 05 декабря 2018

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

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

1 Ответ

0 голосов
/ 05 декабря 2018

Вы писали:

stringstream list;

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

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

...