Я пытаюсь создать и «элегантный» способ отображения в реальном времени того, что пользователь вводит в собственное ядро, для 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? дайте мне знать, если вам нужна дополнительная информация.
Благодарю.
Первая проблема, которую я вижу, это то, что вы проверяете возврат каретки. Ubuntu / Unix не использует возврат каретки для конца строк. Вместо этого он использует перевод строки: ‘\ n’ (0x0A).
Так что попробуйте изменить это на это:
if ( c == '\n')
Других решений пока нет …