2017-07-28 88 views
0

我一直在研究一個Arduino項目。它有一個關於RFID的書面庫MFRC522。我需要改變這個庫的內容,爲此我需要使用printf的輸出作爲變量。需要printf作爲字符串或char數組的輸出

我的意思是:

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的把它們放在數組或類似這樣的東西。請教我一些使用它們作爲變量的方法。

+0

如果您想將字符串作爲變量名稱使用'std :: map'。 – NathanOliver

+0

只需將'uid-> uidByte [i]'放入一個向量中,而不是將它傳遞給'print'。我不明白問題 – user463035818

+2

@Batmaca。我不明白你的問題 –

回答

1

看爲標準sprintf(更好snprintf,甚至更好,但只在Linux的asprintf)從C,POSIX open_memstream,(或者,在標準C++,std::ostringstream)或similar functions for Arduino

+0

在這裏可能不是很有用,但GLib的'g_strdup_printf()'是獲得'printf'格式的字符串的一種非常方便的方式,而不必擔心計算其大小或預先分配足夠大的緩衝區。 –

+0

Linux或GNU libc提供'asprintf' –

+0

謝謝!我還沒有做過任何Linux特定的編程,所以還沒有看到。如果瞄準其他操作系統,即Windows或OS X,GLib仍然有用。 –