У меня есть простая программа (на примере с языка программирования C изм. 2 раздела 1.5.2) для подсчета символов. Сама программа очень проста, однако я не получаю ожидаемых результатов.C Для выполнения цикла
Кажется, что numberOfChars увеличивается в два раза, и я не знаю почему ...?
Я использую Cygwin + компилятор GCC, пожалуйста, см изображение:
int main() {
int numberOfChars;
for(numberOfChars = 0; getchar() != EOF; numberOfChars++)
; //null statement
printf("Number of chars = %d\n", numberOfChars);
return 0;
}
Спасибо за любую помощь :-)
Для пустого оператора используйте '{}' вместо ';'. Потому что ';' сразу после того, как цикл 'for' может выглядеть как опечатка, а когда это тип, это очень сложная ошибка, поэтому некоторые компиляторы выдадут предупреждение с вашим кодом. Пожалуйста, опубликуйте ввод, фактический результат и желаемый результат. –
Пожалуйста, не публикуйте текст как изображения. Вместо этого скопируйте/вставьте текст в вопрос. – fuz
@Pavel getchar считывает все символы, включая новый символ строки. Поэтому, если вы нажмете Enter, тогда будет также подсчитано '\ n'. –