this line should get input from the user and stop when he presses enter. here is the line:
for (i = 0; (t[i] = getche()) != '\r'; i ); //works
for (i = 0; t[i] = getche() != '\r'; i ); //t is getting gibberish values
CodePudding user response:
Order of operations. !=
is higher precedence than =
. Without parentheses, you get the character, compare it to '\r'
, and assign either 1
or 0
to t[i]
depending on the result of the comparison, rather than assigning the character read as intended (and as you do correctly with the parenthesized version).