将指针字符打印为十六进制 #包括 int main(){ char*c=“”; printf(“输入:”); 扫描单位(“%c”,c); printf(“%x”,*c); }
我想输入几个字符,然后将整个字符串作为十六进制值输出。如何执行此操作?您需要一个循环来读取多个字符并输出每个字符。您可能需要将格式更改为将指针字符打印为十六进制 #包括 int main(){ char*c=“”; printf(“输入:”); 扫描单位(“%c”,c); printf(“%x”,*c); },c,string,pointers,character,C,String,Pointers,Character,我想输入几个字符,然后将整个字符串作为十六进制值输出。如何执行此操作?您需要一个循环来读取多个字符并输出每个字符。您可能需要将格式更改为%02x,以确保每个字符输出两位数字。您需要一个循环来读取多个字符并输出每个字符。您可能需要将格式更改为%02x,以确保每个字符输出2位数字。您的整个代码都是错误的。它应该是这样的: #include <stdio.h> int main(){ char *c=""; printf("Input: "); scanf_s("
%02x
,以确保每个字符输出两位数字。您需要一个循环来读取多个字符并输出每个字符。您可能需要将格式更改为%02x
,以确保每个字符输出2位数字。您的整个代码都是错误的。它应该是这样的:
#include <stdio.h>
int main(){
char *c="";
printf("Input: ");
scanf_s("%c", c);
printf("%x", *c);
}
printf("Input: ");
char c = fgetc(stdin);
printf("%X", c);
你的全部代码都错了。它应该是这样的:
#include <stdio.h>
int main(){
char *c="";
printf("Input: ");
scanf_s("%c", c);
printf("%x", *c);
}
printf("Input: ");
char c = fgetc(stdin);
printf("%X", c);
您需要一个缓冲区,而不是一个字符串常量来读取数据。此外,切勿使用任何*scanf
功能,也不得使用任何*\s
功能
编写程序的正确方法如下:
#include <stdio.h>
int main(){
char *c="";
printf("Input: ");
scanf_s("%c", c);
printf("%x", *c);
}
printf("Input: ");
char c = fgetc(stdin);
printf("%X", c);
。。。但我不确定“以十六进制值输出整个字符串”的确切含义,因此这可能不是您想要的。您需要一个缓冲区,而不是字符串常量来读取。此外,切勿使用任何*scanf
功能,也不得使用任何*\s
功能
int
main(void)
{
char line[80];
char *p;
fputs("Input: ", stdout);
fgets(line, sizeof line, stdin);
for (p = line; *p; p++)
printf("%02x", *p);
putchar('\n');
return 0;
}
编写程序的正确方法如下:
#include <stdio.h>
int main(){
char *c="";
printf("Input: ");
scanf_s("%c", c);
printf("%x", *c);
}
printf("Input: ");
char c = fgetc(stdin);
printf("%X", c);
。。。但我不确定“将整个字符串作为十六进制值输出”的确切含义,因此这可能不是您想要的
int
main(void)
{
char line[80];
char *p;
fputs("Input: ", stdout);
fgets(line, sizeof line, stdin);
for (p = line; *p; p++)
printf("%02x", *p);
putchar('\n');
return 0;
}
内部主(空)
{
unsigned int i=0;/*使用unsigned避免符号扩展*/
而((i=getchar())!=EOF)/*则处理所有内容,直到EOF*/
{
printf(“%02X”,i);
}
printf(“\n”);
返回0;
}
#包括
内部主(空)
{
unsigned int i=0;/*使用unsigned避免符号扩展*/
而((i=getchar())!=EOF)/*则处理所有内容,直到EOF*/
{
printf(“%02X”,i);
}
printf(“\n”);
返回0;
}
一次扫描一个字符可能不是最好的方法,但也不是无效的。这是可行的,但是否有办法一次全部扫描?还有为什么scanf的做法不好?对不起,一次做什么?我不明白你在问什么。关于scanf
,请看这里:一次扫描一个字符可能不是最好的方法,但也不是无效的。这是可行的,但是否有办法一次全部扫描?还有为什么scanf的做法不好?对不起,一次做什么?我不明白你在问什么。关于scanf
,请看这里:你的代码和原件一样错误,因为它在一个字符后停止。你的代码和原件一样错误,因为它在一个字符后停止。