在这段代码中,当我执行它时,它有时显示正确的 nT 和 nF 值,有时显示正确的 nF 但不正确的 nT(即 0)。 为什么会这样??
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
unsigned char nT,nF;
puts("Enter No. of Testcases & Faults");
scanf(" %hhu %hhu",&nT,&nF);
printf("\n %hhu %hhu",nT,nF);
}
最佳答案
您需要使用%hhu
作为unsigned char
的格式说明符。 (我知道的晦涩难懂:用于酒吧测验的一个。)此外,您可能想在格式化程序之间引入一些空格:
int read = scanf("%hhu %hhu %s", &nT, &nF, extension);
目前您的程序的行为未定义。
在 C99 之前,您几乎受编译器的支配。
<小时/>进一步说明:
始终检查
scanf
的返回值,它为您提供有关成功读取的输入数量的有用信息。扩展名
仅适用于 4 个字符加上 nul 终止符。
关于c - 每次运行代码时都会生成不同的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42724104/