Использовать библиотеку печати для установки строковой переменной
Мне нужна функция, которая имеет базовую функциональность библиотеки печати, принимая различные типы аргументов и анализируя их. Однако я хотел бы сохранить результат в массиве string/char. Кто-нибудь знает, как я могу использовать библиотеку печати для этого?
@mmiles19, 👍1
Обсуждение1 ответ
▲ 1
Вы можете получить всю функциональность Print
, создав свой собственный класс
, который наследуется от него. Для этого вам нужно только реализовать метод
size_t write(uint8_t)
, который печатает один символ. Вот
простой класс, который наследуется как от Print
, так и от String
, т. Е. Вы получаете
строку
, в которую вы можете print()
и println ()
:
// Строка, в которую можно ввести print() и println ().
class PrintString : public Print, public String
{
public:
PrintString() : String() {}
size_t write(uint8_t c) {
*this += (char) c;
return 1;
}
};
И вот как вы могли бы его использовать:
PrintString answer;
answer.print("The answer is ");
answer.println(42);
,
@Edgar Bonet
Смотрите также:
- Почему я не могу распечатать значения логических переменных (0 и 1) с помощью функции println?
- Arduino Преобразование std:string в String
- Почему эта программа на C++ не может прочитать Serial.write() моего arduino?
- Как работает последовательная связь на Arduino?
- Как изменить переменную при нажатии кнопки, подключенной к контакту 2
- Что является более быстрой альтернативой parseInt()?
- Печать массива с помощью функции печати и последовательной записи в Arduino Uno
- Как напечатать несколько номеров через Serial с очень небольшим количеством строк кода?
Ну, это для использования на arduino. А библиотека печати - это библиотека arduino. Я не уверен, что это в стандартном C++, но я бы так не думал., @mmiles19
RTFM: https://www.arduino.cc/en/Reference/StringConstructor, @Majenko
Извините. Обычно я работаю в C. Я и не подозревал, что строковый конструктор настолько надежен. Спасибо., @mmiles19
мой StreamLib, опубликованный в 2018 году, имеет CStringBuilder, @Juraj