2017-01-19 11 views
0
for (minus == false ? i = 0 : i = 1; string[i] >= '0' && string[i] <= '9'; ++i) 
    { 
     intValue = string[i] - '0'; 

     minus == false ? result = result * 10 + intValue : 
      result = result * 10 - intValue; 

    } 

error: expression is not assignable screenshot - http://share.pho.to/AarcJправильное использование тройного оператора в функции StrToInt (С)

https://codeshare.io/5Pdd7X

+1

Я предлагаю вам сделать что-то вроде 'я = минус == ложное? 0: 1' вместо. Измените оба экземпляра, которые у вас есть. –

+1

Вы хотите 'i = (минус == false)? 0: 1' или просто 'i = (минус! = False)' –

+1

Или это. 'i = !! minus' – Roddy

ответ

1

использования (например)

for (i = minus? 1:0; string[i].... etc 

И ...

result = result * 10 + minus? (-lastvalue) : lastvalue; 
+0

Спасибо за помощь !!! – Yellowfun

+0

результат = результат * 10 + минус? (-intValue): intValue; http://share.pho.to/AarrP – Yellowfun

+0

:) Я исправил это. result = result * 10 + (минус? -intValue: intValue); – Yellowfun

2

minus == false ? i = 0 : i = 1 будет разобрано как (minus == false ? i = 0 : i) = 1 из правила приоритета оператора. После оценки minus == false ? i = 0 : i левая сторона оператора = станет rvalue, но оператор присваивания должен иметь lvalue в качестве своего левого операнда.
Изменить его minus == false ? (i = 0) : (i = 1)

+0

Благодарим вас за помощь !!! – Yellowfun

 Смежные вопросы

  • Нет связанных вопросов^_^