首先让我展示什么是有效的,然后我将展示什么是无效的。这段代码给出了正确的结果。
unsigned long timeOn;
long d[10];
d[0] = 8;
d[1] = 6;
d[2] = 0;
d[3] = 0;
d[4] = 0;
timeOn = 10000*d[0] + 1000*d[1] + 100*d[2] + 10*d[3] + d[4] ;
printf("%lu",timeOn);
输出:86000
如果我希望用户输入以下值,我会得到不同的结果,这就是我拥有的代码。
unsigned long timeOn;
long d[10];
int i;
for(i = 0; i < 5 ; i++)
{
while (!ConsoleIsGetReady());
d[i] = ConsoleGet();
}
timeOn = 10000*d[0] + 1000*d[1] + 100*d[2] + 10*d[3] + d[4] ;
printf("%lu",timeOn);
BYTE ConsoleGet(void)
{
char Temp;
while(IFS1bits.U2RXIF == 0);
Temp = U2RXREG;
IFS1bits.U2RXIF = 0;
return Temp;
}
输出:619328
这不应该以同样的方式工作吗?那么当用户输入值时我得到不同的结果怎么办?谢谢!