我想要做的是让用户输入一个十六进制数,然后这个数字将被转换为一个字符并显示到监视器上,这将一直持续到遇到 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/