Задать вопрос
@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(), ни тому подобного. Но ОТКУДА программа получает ввод? Спасибо
  • Вопрос задан
  • 108 просмотров
Подписаться 1 Простой 2 комментария
Ответ пользователя Рональд Макдональд К ответам на вопрос (2)
Zoominger
@Zoominger
System Integrator
for (i = 0; i < lim-1 && (c = getchar()) != EOF && c != '\n'; ++i)

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