gpt4 book ai didi

C编程十六进制转字符

转载 作者:太空宇宙 更新时间:2023-11-04 08:37:08 24 4
gpt4 key购买 nike

我想要做的是让用户输入一个十六进制数,然后这个数字将被转换为一个字符并显示到监视器上,这将一直持续到遇到 EOF。我有与此代码相反,将 char 转换为十六进制数。我遇到的问题是如何从我为 char2hex 程序使用 getchar() 的用户那里得到一个十六进制数。十六进制数有没有类似的函数?

这是 char2hex 程序的代码

#include <stdio.h>
int main(void) {
char myChar;
int counter = 0;

while (EOF != (myChar = getchar())) {
/* don't convert newline into hex */
if (myChar == '\n')
continue;
printf("%02x ", myChar);

if (counter > 18) {
printf("\n");
counter = -1;
}
counter++;
}
system("pause");
return 0;
}

这就是我想让程序做的,除非它会连续执行此操作

#include <stdio.h>
int main() {
char myChar;

printf("Enter any hex number: ");
scanf("%x", &myChar);

printf("Equivalent Char is: %c\n", myChar);

system("pause");

return 0;
}

任何帮助将不胜感激谢谢你

最佳答案

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>

int main(void) {
int myChar;
int counter = 0;
char buff[3] = {0};

while (EOF != (myChar = getchar())) {
if(isxdigit(myChar)){
buff[counter++] = myChar;
if(counter == 2){
counter = 0;
myChar = strtol(buff, NULL, 16);
putchar(myChar);
}
}
}
printf("\n");
system("pause");
return 0;
}

关于C编程十六进制转字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25752868/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com