Fossil SCM

fossil-scm / compat / zlib / contrib / puff / bin-writer.c
Blame History Raw 27 lines
1
#include "stdio.h"
2
#include "stdlib.h"
3
4
/**
5
* Reads hexadecimal values from stdin and writes binary bytes to stdout.
6
* Accepts hex values separated by spaces, newlines, commas, etc.
7
* Handles both uppercase and lowercase hex digits.
8
*/
9
int main(void) {
10
char hexStr[3]; // Two hex digits + null terminator
11
int ch;
12
13
// Read characters until EOF
14
while((ch = getchar()) != EOF) {
15
hexStr[0] = (char)ch;
16
hexStr[1] = (char)getchar();
17
hexStr[2] = '\0'; // Null-terminate string
18
char *endptr;
19
unsigned char byte = (unsigned char)strtol(hexStr, &endptr, 16);
20
fwrite(&byte, 1, 1, stdout);
21
if((ch = getchar()) == EOF) // Read seaparating space
22
break;
23
}
24
25
return 0;
26
}
27

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button