Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
bgm313
12 / 12 / 3
Регистрация: 27.07.2012
Сообщений: 208
1

Сколько символов во входном потоке

24.08.2012, 02:44. Просмотров 1789. Ответов 4
Метки нет (Все метки)

Если сделать scanf("%c",&ch) и ввести "123", то в ch окажется '1'. Как проверить остались ли какие-либо символы во входном потоке? Это нужна для того, чтобы если там остался мусор сообщить об этом и выдать ошибку.
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.08.2012, 02:44
Ответы с готовыми решениями:

Подсчет строк, слов и символов во входном потоке
В книге Кернигана и Ритчи надо вставлять значения 1 0. Правда и ложь. Наверное я читаю код...

Гистограмма частот во входном потоке
#include<stdio.h> main(){ int maxlegnth, maxvalue, i, c, j; int lettersfreq; maxlegnth =...

Определить количество цифр во входном потоке.
Програмку составил, но выводит кол-во символов. Подозреваю что дело в строчке if ('0'<c<'9') nd++;...

Подсчет количества строк во входном потоке
#include <stdio.h> /* подсчет строк входного потока */ main() { int с, nl; nl = 0; while ((с...

Вывести гистограммы длин слов во входном потоке
Доброго времени суток, Учу си, читаю книгу "Керниган, Ричи. Язык C", попутно выполняю задания,...

4
accept
4839 / 3260 / 465
Регистрация: 10.12.2008
Сообщений: 10,569
24.08.2012, 06:10 2
C
1
2
3
    scanf("%c%*c", &ch);
    if (!feof(stdin))
        ;
C
1
2
3
    scanf("%c", &ch);
    if (ungetc(getchar(), stdin) != EOF)
        ;
1
bgm313
12 / 12 / 3
Регистрация: 27.07.2012
Сообщений: 208
24.08.2012, 18:53  [ТС] 3
Делаю так не работает:
C++
1
2
3
4
scanf("%c%*c", &ch);
        if (!feof(stdin)){
            puts("error");
        }
Всегда выводится error.

Если делать 2 способом тоже не работает, но если заменить EOF, на символ '\n' вроде всё ок.
0
accept
4839 / 3260 / 465
Регистрация: 10.12.2008
Сообщений: 10,569
25.08.2012, 03:11 4
когда нажимаешь ввод, он остаётся во входном потоке
0
-=ЮрА=-
Заблокирован
Автор FAQ
27.08.2012, 12:05 5
bgm313, всё на много много проще
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#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;
}
0
Миниатюры
Сколько символов во входном потоке  
27.08.2012, 12:05
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.08.2012, 12:05

Вывод номеров встречающихся букв во входном потоке
В теме книги обсуждались указатели, но у меня они употреблены номинально и можно было обойтись без...

Гистограмма частот, с которыми встречаются во входном потоке различные символы
Напишите программу для вывода гистограммы частот, с которыми встречаются во входном потоке...

Вывод гистограммы (с вертикальными столбцами) длин слов во входном потоке
Написать программу для вывода гистограммы длин слов во входном потоке. Гистограмма должна быть с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru