@start_of_way

Как программа получает ввод?

/*  Напишите программу печати всех вводимых строк, содержащих более 80 символов. */

#include <stdio.h>
int MAXLINE = 1000;

int getlinel(char line[], int MAXLINE);

int main()
{
    int len,  min = 10;
    char line[MAXLINE];
    while ((len = getlinel(line, MAXLINE)) > 0)
        if (len > 80){
            printf("%s\n", line);
        }
    return 0;
}

int getlinel(char s[], int lim)
{
    int c, i;
    for (i = 0; i < lim-1 && (c = getchar()) != EOF && c != '\n'; ++i)
        s[i] = c;
    if (c == '\n') {
        s[i] = c;
        ++i;
    }
    s[i] = '\0';
    return i;
 }

Вот есть программа (она работает). Как она получает ввод? Здесь нет ни putchar(), ни scanf(), ни тому подобного. Но ОТКУДА программа получает ввод? Спасибо
  • Вопрос задан
  • 105 просмотров
Решения вопроса 1
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
Здесь нет ни putchar(), ни scanf(), ни тому подобного.

есть c = getchar().

ОТКУДА программа получает ввод?

из стандартного потока ввода, откуда getchar читает символы.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Zoominger
@Zoominger
System Integrator
for (i = 0; i < lim-1 && (c = getchar()) != EOF && c != '\n'; ++i)

Тут. В цикле идёт считывание текущего символа до тех пор, пока не будет получен EOL или не произойдёт нажатие Enter. Ну или длина строки не превысит заданное значение.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы