У меня есть четыре датчика (sen0-sen3), которые возвращают либо 1
, либо 0
, и я создаю массив значений, используя sprintf
. Затем я пытаюсь сравнить их с 0000
или 1000
и так далее.
Моя проблема заключается в том, что даже если значение sen_array
равно 1000
, оно никогда не переходит в состояние else if
(прямо в состояние else
).
char sen_array[4];
sprintf(sen_array,"%d%d%d%d",sen0,sen1,sen2,sen3);
if(strcmp("0000",sen_array)==0)
{
motor_pwm((156*(0.20).),(156*(0.20)));
}
else if(strcmp("1000",sen_array)==0)
{
motor_pwm((156*(0.40)),(156*(0.40)));
}
else
{
motor_pwm((156*(0.80)),(156*(0.80)));
}
sprintf(sen_array,"%d%d%d%d%d",sen0,sen1,sen2,sen3);
у вас есть 5 спецификаторов формата%d
и только 4 переменные. - person Ryan   schedule 15.04.2011sen_array
. - person Mat   schedule 15.04.2011sprintf()
?strcmp
? Это точно С++? Также sen[0-3] всегдаbool
? - person Johnsyweb   schedule 15.04.2011