【发布时间】:2013-09-05 10:37:04
【问题描述】:
我正在使用boost::asio 从串行端口读取数据。我不断地从串口读取并通过std::cout 打印出来。但是发生了一些奇怪的事情。
我正在使用来自here 的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; 时,我得到了我想要的输出,但每个字符都在一个新的行上,这是不可取的。
那么谁能告诉我为什么会这样?
【问题讨论】:
标签: c++ boost serial-port boost-asio cout