我正在使用boost::asio
从串行端口读取。我不断地从串口读取并通过std::cout
. 但是发生了一些奇怪的事情。
我正在使用这里TimeoutSerial
的课程。我的代码是这样的:
#include <iostream>
#include "TimeoutSerial.h"
using namespace std;
int main(){
TimeoutSerial serial;
serial.open("/dev/ttyACM0", 9600 );
serial.setTimeout(boost::posix_time::seconds(1));
char c = '0';
while(true){
try{
serial.read( &c, 1 );
cout << c;
}catch( std::runtime_error err ){
cout << "Error: " << err.what()<< endl;
}
}
return 0;
}
我没有输出,我不知道为什么。当我更改为时cout << c;
,cout << c << endl;
我得到了我想要的输出,但是每个字符都在一个新的行上,这是不可取的。
那么谁能告诉我为什么会这样?