Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将指针字符打印为十六进制 #包括 int main(){ char*c=“”; printf(“输入:”); 扫描单位(“%c”,c); printf(“%x”,*c); }_C_String_Pointers_Character - Fatal编程技术网

将指针字符打印为十六进制 #包括 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
,请看这里:你的代码和原件一样错误,因为它在一个字符后停止。你的代码和原件一样错误,因为它在一个字符后停止。