gpt4 book ai didi

c - 使用 scanf 读取无符号字符

转载 作者:太空狗 更新时间:2023-10-29 16:27:36 24 4
gpt4 key购买 nike

我正在尝试使用此代码读取 0 到 255 之间的值 (unsigned char)。

#include<stdio.h>
int main(void)
{
unsigned char value;

/* To read the numbers between 0 to 255 */
printf("Please enter a number between 0 and 255 \n");
scanf("%u",&value);
printf("The value is %u \n",value);

return 0;
}

我确实收到了预期的以下编译器警告。

warning: format ‘%u’ expects type ‘unsigned int *’, but argument 2 has type ‘unsigned char *’

这是我对该程序的输出。

Please enter a number between 0 and 25545The value is 45 Segmentation fault

我在运行这段代码时遇到了段错误。

使用 scanf 读取 unsigned char 值的最佳方法是什么?

最佳答案

%u 说明符需要一个整数,当将其读入 unsigned char 时会导致未定义的行为。您将需要使用 unsigned char 说明符 %hhu

关于c - 使用 scanf 读取无符号字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14146434/

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