需要将 char 的代码转换为八进制。也许先将 char 转换为十进制,然后再转换为八进制,如果它会更容易的话。没关系。
char c; // equal 'd' or '\n' for example
int d=...;//something to change
printf("%o",c)
将是很好的变体,但我不能使用标准 C 函数。只有自己的转换实现。请在这里写一些更好的工具或您自己的工具。
printf() 如何为 (%o)
printf(ul, 8)
{
/* hold a long in base 8 */
char *p, buf[(sizeof(long) * NBBY / 3) + 1];
p = buf;
do {
*p++ = "0123456789abcdef"[ul % base];
} while (ul /= base);
do {
putchar(*--p);
} while (p > buf);
}
但我不想使用 putchar(),只想保存。