2017-08-24 23 views
-2

これは非常に些細な質問かもしれませんが、私はあまり幸運にもそれを回避する方法を探しています。私はlibserial関数を使ってシリアルポートから読み込む関数を持っていますが、それを読むためには常にキャリッジリターンまたは "\ r"で終了する応答があります。それは\ 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

を意図したと思いますか? – 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

私はあなたが `serial_port`は何

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

ありがとう、私はこれが完全に動作することを確認します。 –

関連する問題