Я знаю, что есть много вопросов по той же теме scanf
, пока не достигнуто EOF
, но вот конкретный случай, который я не видел. Предположим, что я хочу создать программу на языке C, где пользователь вводит один символ, а программа печатает символ и количество раз, когда пользователь вводил символ, пока они не нажимают CTRL + D (EOF)C: Сканирование Пока не EOF Loop Неожиданные результаты
Это то, что У меня есть:
Однако выход не так, как ожидалось. Это следующее:
f
time:0, char:f
time:1, char:
p
time:2, char:p
time:3, char:
m
time:4, char:m
time:5, char:
Я не слишком уверен, почему i
инкрементируется снова, и почему printf
получает выполняется снова. Возможно, я что-то упустил.
«пользователь вводит один символ» -> Пользователь также нажал клавишу? Попробуйте 'printf (« time:% d, char:% d \ n », i, thing);' (c-d) –
chux