繁体   English   中英

如何在C,C ++中输入1个字节的整数值

[英]How to input 1 byte integer value in C, C++

我尝试将整数(-128-> 127)放入1个字节。 我使用char这是我的代码:

#include <stdio.h>
int main()
{
    char x;
    scanf("%d", &x);
    printf("%d", x);

    return 0;
}

屏幕上的结果是正确的,但是在程序退出之前,它已损坏。 如何修复1字节C,C ++中存储整数的问题

举个例子:输入128,我的控制台将输出printf -128:发生错误:“变量'x'周围的堆栈已损坏”我在Microsoft Visual Studio上工作

谢谢,希望你能帮帮我!

你要:

scanf("%hhd", &x);

scanf(3)手册页中

h表示转换将是diouxXn的一个,并且下一个指针是一个指向short intunsigned short int (而不是int )的指针。

hhh ,但下一个指针是指向有signed charunsigned char的指针。

..并且由于它是从下面的C标准中提到的,所以在7.21.6.2 fscanf函数的第11段中:

长度修饰符及其含义是:

hh指定后面的diouxXn转换说明符适用于类型为带signed charunsigned char指针的参数。

如果您使用的是非标准的编译器,那么您的工作量可能会有所不同(并且您可能应该重新标记问题)。

做到这一点的标准方法是读入一个int变量,然后复制到char

char x;
int i;
scanf("%d", &i);
x = (char) i;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM