#include std::string read_terminal_line(const std::string & prompt) { Serial.print(prompt.c_str()); Serial.print(F(">")); std::string str; for(;;) { if (Serial.available()) { char c = Serial.read(); if (c == 13 || c == 10) break; if (c == 8) { if (!str.empty()) { str = str.substr(0, str.size() - 1); Serial.print(char(8)); Serial.print(' '); Serial.print(char(8)); } } else if (c >= 32 && c < 127) { str += c; Serial.print(c); } } } Serial.println(F("")); return str; }