В режиме реального времени пользовательский ввод эхо

Я пытаюсь создать и «элегантный» способ отображения в реальном времени того, что пользователь вводит в собственное ядро, для 68hc12, над которым я работаю.

#include "hc12sci.h"#include "iomanip.h"
int main()
{
Hc12Sci hc12sci(sci0,16,36); // serial port, rxlen, txlen
ostream os(&hc12sci);
istream is(&hc12sci);

char cmd[16];
char c;

os << "hello world!" << endl;
while(1)
{
for(int i = 0; i<=15; i++)
{
is >> c
cmd[i] = c;
os << c << flush;
if(c == '\r')          // test for carriage return
os << cmd << endl;
}
os << endl;
}
return 0;

Проблема, я уверен во многих, заключается в том, что она никогда не входит в инструкцию возврата каретки. Я строю это в Ubuntu, хоть что-то из-за того, что я делаю неправильно с оператором if? дайте мне знать, если вам нужна дополнительная информация.
Благодарю.

1

Решение

Первая проблема, которую я вижу, это то, что вы проверяете возврат каретки. Ubuntu / Unix не использует возврат каретки для конца строк. Вместо этого он использует перевод строки: ‘\ n’ (0x0A).

Так что попробуйте изменить это на это:

if ( c == '\n')
1

Другие решения

Других решений пока нет …