У меня есть массив символов без знака, которые я хотел бы вывести
Как вывести символ без знака в текстовый файл в c?
Сложная частьmsgstr "в текстовый файл".Обычно это означает сохранить что-то удобочитаемое для человека.
Если это и есть цель, то сохраните печатные символы как текстовые, а непечатные - как экранированный текст - также специальная обработка '\n'
и '\\'
.
#include <ctype.h>
#include <stdio.h>
void print_1_uchar(FILE *stream, unsigned char uch) {
if ((isprint(uch)) && ch != '\\') || ch == '\n') {
fputc(uch, stream);
} else {
fprintf(stream, "\\x03o", uch);
}
}
void print_1_array(FILE *stream, const void *a, size_t sz) {
const unsigned char *s = a;
while (sz-- > 0) {
print_1_uchar(stream, *s++);
}
}
Использование
unsigned char foo[] = { 1,2,3,4,5 };
print_1_array(stdout, foo, sizeof foo);