char input=fgetc(stdin);
Обратите внимание, что для fgetc()
требуется int
(ну, что-то большее, чем char
- int
обычно) для его возвращаемого значения: EOF
является возможным возвращаемым значением в дополнение к любому из значения, которые char
может принимать.
if (input==*"j")
Да, это неловко . :) Сравнение символов (если в этом случае все в порядке) будет выглядеть так:
if (input == 'j')
Знание разницы между символом ''
и строкой ""
жизненно важно для того, чтобы стать хорошим c программистом. Он может чувствовать себя неестественно после произвольного поведения 'string'
"string"
и """string"""
из других языков сценариев, но так оно и есть.
Как правило, программы такого рода написаны с разным макетом:
int c;
while((c = getchar()) != EOF) {
/* do something with c */
}
Помещение теста и в условие while
поначалу может показаться странным, но это идиоматично. (И я очень скучал по этому поведению на языках, которые запрещают это.)