可変長配列 フォーマット sprintf cpp c++ unsigned char

長さ未定のunsigned char配列を文字列にフォーマットしたいときの例。
stringstreamをフォーマットしながら使う。
#include <iostream>
#include <sstream>
#include <iomanip>
using namespace std;

int main(){
	unsigned char s[] = {255,255,0,0,1,1};
	unsigned char t[] = {255,255,0,0,1,1,255,255};
	char str[64];

	stringstream ss;
	for(int i=0; i<sizeof(s)/sizeof(s[0]); i++){
		ss << hex << uppercase << setw(2) << setfill('0');
		ss << (int)s[i] << ',';
	}
	cout << ss.str().c_str() << "\n";

        //再初期化
	ss.str("");
	ss.clear();

	for(int i=0; i<sizeof(t)/sizeof(t[0]); i++){
		ss << hex << uppercase << setw(2) << setfill('0');
		ss << (int)t[i] << ',';
	}
	cout << ss.str().c_str() << "\n";

	return 0;
}
FF,FF,00,00,01,01,
FF,FF,00,00,01,01,FF,FF,