2017-08-24 19 views
-2

這可能是一個非常微不足道的問題,但我一直在尋找如何避免運氣。我有一個函數使用libserial函數從串口讀取,響應我會得到一個回車或一個「\ r」,所以,爲了閱讀它,我一直在閱讀字符比較if它不是\ r然後將每個字符存儲到一個數組中以備後用。我的功能如下:C++將連續字符存儲到數組中

void serial_read() 
{ 
char character; 
int numCharacter = 0; 
char data[256]; 

    while(character != '\r') 
    { 
     serial_port >> character; 
     numCharacter++; 
     character >> data[numCharacter]; 
    } 
cout << data; 
} 

總之,可能我的問題應該是如何將連續的字符存儲到數組中。非常感謝您提供寶貴的見解。

+0

什麼是'serial_port'? – wally

+0

['std :: string :: push_back'](http://en.cppreference.com/w/cpp/string/basic_string/push_back)會根據需要調整大小。 – wally

+0

在這種情況下,它通過串行通信從外設接收字符,並將其存儲到名爲字符的變量中。我正在使用這裏描述的libserial通信:[link] http://libserial.sourceforge.net/tutorial.html#reading-characters [link] –

回答

0

我猜你打算

void serial_read() 
{ 
    char character = 0; 
    int numCharacter = 0; 
    char data[256]; 

    while(character != '\r' && numCharacter < 255) 
    { 
    serial_port >> character; 
    data [numCharacter ++] = character; 
    } 
    data [numCharacter] = 0; // close "string" 
    cout << data; 
} 
+0

非常感謝,我確認這個作品完美。 –

相關問題