Например, мне нужен
unsigned code[] { 0x0001, 0x0002, 0x0003, .. and so on }
из argv.Я хотел бы ввести его в виде потока, как это:
000100020003 and so on
unsigned hextodigit(int hex) { unsigned result = 0; switch(toupper(hex)) { case '0': return 0; break; case '1': return 1; break; case '2': return 2; break; case '3': return 3; break; case '4': return 4; break; case '5': return 5; break; case '6': return 6; break; case '7': return 7; break; case '8': return 8; break; case '9': return 9; break; case 'A': return 10; break; case 'B': return 11; break; case 'C': return 12; break; case 'D': return 13; break; case 'E': return 14; break; case 'F': return 15; break; default: break; } } unsigned fromhex4chars(const char *str) { return hextodigit(*(str + 3)) + (hextodigit(*(str + 2)) << 4) + (hextodigit(*(str + 1)) << 8) + (hextodigit(*str) << 12); } void convert(const char *str, unsigned *buff) { size_t len = strlen(str) / 4; while(len--) { *buff++ = fromhex4chars(str); str += 4; } } int main(int argc, char **argv) { unsigned x[100]; convert(argv[1], x); return 0; }