gpt4 book ai didi

c - 变量在 C 程序中丢失了它的值

转载 作者:太空宇宙 更新时间:2023-11-04 05:34:23 24 4
gpt4 key购买 nike

这是用“c”编写的,并用 gcc 编译的。我不确定您还需要了解什么。

此处显示了我可以放在一起的最小的完整示例。变量“numatoms”在到达第 23 行时(在 scanf() 之后)失去了它的值。

我被难住了。也许它与 scanf() 覆盖 numatoms 的空间有关?

#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>

/*
*
*/
int main(int argc, char** argv) {
uint8_t numatoms;
uint8_t r;
char a[20];

do {
printf("NO. OF ATOMS?");
fflush(stdout);
scanf("%d", &numatoms);
printf("\r\n");
for(;;){
printf("value of numatoms is %u\r\n", numatoms);
printf("RAY?");
fflush(stdout);
scanf("%u", &r);
printf("value of numatoms is %u\r\n", numatoms);
if(r < 1)
break;
else {
printf("value of numatoms is %u\r\n", numatoms);
}
}
printf("CARE TO TRY AGAIN?");
fflush(stdout);
scanf("%s", a);
printf("\r\n");
} while (a[0] == 'y' || a[0] == 'Y');

return (EXIT_SUCCESS);

最佳答案

uint8_t 是 8 位长 %u 读取一个无符号整数(可能是 32 位长)。

您需要使 numatoms“更大”(即 unsigned int)或读取正确的大小(参见 scanf can't scan into inttypes (uint8_t))

关于c - 变量在 C 程序中丢失了它的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44915001/

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