>>891
while ((c = getchar()) != EOF && c != '\n')....
とか普通にかけるでしょ

何のために「わざわざ」&&や||が副作用完了点とされ、
評価順序が厳密に仕様で定義されてると思ってるのかしら