タイトルはほとんどすべてを語っています。
(10 進数ではなく) 印刷したいのですが、unsigned char 値 (16 進数) で印刷します。例
unsigned char data[6] = {70,AF,80,1A, 01,7E};
NSLog(@"?",data); //need this output : 70 AF 80 1A 01 7E
何か案が?前もって感謝します。
タイトルはほとんどすべてを語っています。
(10 進数ではなく) 印刷したいのですが、unsigned char 値 (16 進数) で印刷します。例
unsigned char data[6] = {70,AF,80,1A, 01,7E};
NSLog(@"?",data); //need this output : 70 AF 80 1A 01 7E
何か案が?前もって感謝します。
char
配列の書式指定子はありません。1 つのオプションはNSData
、配列からオブジェクトを作成し、オブジェクトをログに記録するNSData
ことです。
NSData *dataData = [NSData dataWithBytes:data length:sizeof(data)];
NSLog(@"data = %@", dataData);
標準ライブラリには何も実行されないため、小さな16進ダンプ関数を記述したり、明確な完全なデータを出力する他の関数を使用したりできます。何かのようなもの:
char buf[1 + 3*dataLength];
strvisx(buf, data, dataLength, VIS_WHITE|VIS_HTTPSTYLE);
NSLog(@"data=%s", buf);
データの小さいチャンクの場合は、NSDataを作成し、debugDescriptionメソッドを使用することができます。これは現在16進ダンプですが、常に1つになるとは限りません。
NSLog で char* を出力するには、以下を試してください。
char data[6] = {'H','E','L','L','0','\n'};
NSString *string = [[NSString alloc] initWithUTF8String:data];
NSLog(@"%@", string);
null
文字列を終了する必要があります。
アップルのドキュメントから:
- (instancetype)initWithUTF8String:(const char *)nullTerminatedCString;
UTF8 でエンコードされたバイトの指定された C 配列から文字をコピーすることによって初期化された NSString オブジェクトを返します。