2017-07-28 13 views
0

私はArduinoプロジェクトで作業しています。 RFIDに関する書面ライブラリMFRC522があります。私はこのライブラリ上で何かを変更する必要があります。そのためには、出力としてprintfを変数として使用する必要があります。printfの出力が文字列または文字配列として必要です

私は意味:

Serial.print(F("Card UID:")); 
for (byte i = 0; i < uid->size; i++) { 
    if(uid->uidByte[i] < 0x10) 
     Serial.print(F(" 0")); 
    else 
     Serial.print(F(" ")); 
    Serial.print(uid->uidByte[i], HEX); 
} 
Serial.println(); 

を、一般的に出力が

Card UID: A6 74 E6 2B 

として来て、私は、配列またはこのようなものでそれらを置くためにこれらのIDを必要とします。変数として使う方法を教えてください。標準sprintf

+0

文字列を変数名として扱いたい場合は、 'std :: map'を使います。 – NathanOliver

+0

'uid-> uidByte [i]'を単に 'print'に渡すのではなくベクトルに置きます。私は質問 – user463035818

+2

@Batmacaを理解していない。私はあなたの質問が何であるかを明確に理解していません –

答えて

1

ルックC、POSIX open_memstream、(または、標準C++で、std::ostringstream)またはsimilar functions for Arduinoから(snprintfより良い、より良いだけのLinux asprintfで)。

+0

GLibの 'g_strdup_printf()'は、printf形式の文字列を取得したり、サイズを計算したり、十分な大きさのバッファをあらかじめ割り当てることを心配することなく、とても便利な方法です。 –

+0

LinuxまたはGNU libcが 'asprintf'を返します –

+0

ありがとう! Linux特有のプログラミングを行っていないので、まだそれを見ていない。 GLibは、他のOS(WindowsやOS X)をターゲットにしている場合でもまだ役に立ちます。 –

関連する問題