Программа выдает значение 1989058103 при вводе 3 вместо 3 - C (СИ)
Формулировка задачи:
Изучаю Си по книге кернигана ритчи.Почему данная программа выдает значение например при вводе 3 символов
1989058103 вместо 3?
#include<stdio.h>
#include<conio.h>
main()
{
long c;
while(getchar()!='\n')
++c;
printf("%ld\n",c);
getch();
}Решение задачи: «Программа выдает значение 1989058103 при вводе 3 вместо 3»
textual
Листинг программы
#include<stdio.h>
#include<conio.h>
main()
{
long c=0;
while(getchar()!='\n') c++;
printf("%ld\n",c);
getch();
}
Объяснение кода листинга программы
В этом коде:
- #include
— подключаем стандартную библиотеку для ввода-вывода - #include
— подключаем библиотеку для работы с консолью - main() — функция main() является точкой входа в программу
- long c=0; — объявляем переменную c типа long (целое число) и инициализируем её значением 0
- while(getchar()!='\n') c++; — входим в цикл while, который будет выполняться до тех пор, пока не будет прочитана новая строка (нажатие Enter). Внутри цикла увеличиваем значение переменной c на 1
- printf(
%ld\n,c); — выводим значение переменной c с помощью функции printf(). В данном случае выведется значение 3, так как цикл выполнится 3 раза - getch(); — блокирующий вызов, который ожидает нажатия клавиши в консоли При вводе 3 и нажатии Enter, программа выведет 3. Если ввести 5 и нажать Enter, программа выведет 5. Если ввести 10 и нажать Enter, программа выведет 10. И так далее.