Я новичок в C ++.
Я ссылался на более 10 страниц stackoverflow, ссылаясь на схожие проблемы, но, что бы я ни пытался, я не могу экстраполировать решение, соответствующее моей конкретной проблеме.
У меня есть некоторая электроника, подающая данные в последовательный порт, правильность которых проверяется с помощью RealTerm и XCTU. (Короче говоря, я знаю, что данные, отправляемые в порт, верны)
Я получаю доступ к последовательному порту, используя CreateFile () / dcb. (Код настройки порта, который я уверен, является правильным, но если вы хотите увидеть код, чтобы убедиться, что вы сами дайте мне знать) (Если доступ к последовательному порту другим способом решит эту проблему, дайте мне знать)
Единственное действие, которое я выполняю с портом, - это ReadFile ().
LpBuffer, используемый вызовом ReadFile (), настроен как char [].
Я не знаю почему, но кажется, что каждый индекс char [] принимает только один байт информации.
В целях отладки я использую:
cout << hex << setfill('0') << setw(2) ...
Чтобы он выводился на консоль следующим образом:
lpBuffer in [...] = ...
lpBuffer in [11] = 03
lpBuffer in [12] = ff
lpBuffer in [...] = ...
Я хотел бы использовать концепцию объединения двух строк, чтобы получить:
03ff (1023)
Я бы также предпочел ответ, в котором «конкатенированное» значение хранится в переменной, без изменения информации, хранящейся в lpBuffer / char [] (буквально не конкатенируя ее), и сохраняет значение в виде целого числа.
Я пытался использовать sprintf_s (), stringstream, преобразовать в строку и использовать stoi.
Самые близкие ответы, которые я нашел, похоже, не работают для lpBuffers (char [], хранящих байтовые данные в отличие от реальных символов?), А также преобразуют все индексы массива, а не только конкретные.
Пожалуйста, помогите, C ++ Wizards!