Сколько символов во входном потоке - C (СИ)
Формулировка задачи:
Если сделать scanf("%c",&ch) и ввести "123", то в ch окажется '1'. Как проверить остались ли какие-либо символы во входном потоке? Это нужна для того, чтобы если там остался мусор сообщить об этом и выдать ошибку.
Решение задачи: «Сколько символов во входном потоке»
textual
Листинг программы
#include <stdio.h>
int main()
{
char chr;
int count = 0;
while(1)
{
printf("Your input : ");
chr = getchar();
printf("First char : %c\n", chr);
while(chr != '\n')
{
chr = getchar();
count = count + 1;
}
if(count)
printf("Count of symbols in buffer : %d\n",count);
else
printf("Your input is only from 1 symbol\n");
}
return 0;
}
Объяснение кода листинга программы
- Подключение стандартной библиотеки ввода-вывода
- Объявление переменных: — chr — символ, получаемый из стандартного ввода — count — счетчик количества символов
- Бесконечный цикл, прерываемый только при вводе символа новой строки
- Вывод сообщения с просьбой ввести данные
- Чтение символа в переменную chr с помощью функции getchar()
- Вывод первого символа с помощью функции printf()
- Пока введенный символ не является символом новой строки, происходит чтение следующего символа и увеличение счетчика count на единицу
- Если count не равно нулю, то выводится количество символов в буфере
- Если count равно нулю, то выводится сообщение о том, что ввод состоит только из одного символа
- Завершение цикла и возврат нуля, что означает успешное завершение программы