Как закончить ввод символов в консоль в Code::Blocks, чтобы начались вычисления?

Рейтинг: 0Ответов: 1Опубликовано: 19.01.2023

Написал простую программу, идея которой считывать данные, введённые в консоль. Программа должна сохранять количество разных цифр в массив ndigit, а также количество символов и количество пробелов в переменные no и nw соответственно.

При запуске ввожу данные в консоль, затем нажимаю ENTER и у меня просто ввод переходит на новую строку. Я не понимаю, как дать сигнал о том, что я завершил ввод. Пробовал различные сочетания клавиш в том числе и ctrl+z.

Код программы представлен ниже, мало ли там ошибки...Операционная система - Linux Ubuntu. Компилятор - GNU GСC.

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int c, i, nw, no;
    int ndigit[10];

    nw = no = 0;
    for(i = 0; i < 10; i++)
        ndigit[i] = 0;

    while((c = getchar()) != EOF)
    {
        if(c >= '0' && c <= '9')
            ++ndigit[c - '0'];

        else if(c == ' ' || c == '\n' || c == '/t')
            ++nw;

        else
            ++no;
    }
    printf("digits: ");

    for(i = 0; i < 10; i++)
        printf("%d ", ndigit[i]);

    printf("Whitespaces: %d, other symbols: %d", nw, no);

    return 0;
}

Ответы

▲ 1Принят

В Linux ctrl + d – ответ от needKVAS