Родной пример из книжки не работал(компилятору не нравилось название функции
getline(), при переименовивании оного работало).
На мой вариант
GCC матюгается : expected declaration or statement at end of input (перевод
google Ожидается декларация или заявление в конце входной)
Мой вариант :
#include <stdio.h>
#define LINE_LIMIT 1000 /* максимальная длина строки в потоке */
void copy_line(char from[], char to[]);
int get_lines(char current_line[]);
/* вывод самой длинной строки в потоке */
main()
{
int current_line_length;
int max_line_length;
char current_line[LINE_LIMIT];
char longest_line[LINE_LIMIT];
max_line_length = 0;
while ((current_line_length = get_lines(current_line)) > 0)
if (current_line_length > max_line_length)
{
max_line_length = current_line_length;
copy_line(current_line, longest_line);
}
if (max_line_length > 0)
{
printf("%s", longest_line);
printf(" Максимум символов в строке = %d", max_line_length);
{
return 0;
}
/* Копирует из from[] в to[] */
void copy_line(char from[], char to[])
{
int i;
i = 0;
while((to[i] = from[i]) != '\0')
++i;
}
/* get_lines: читает строку в current_line[], возвращает ее длину */
int get_lines(char current_line[LINE_LIMIT])
{
int line_length;
char next_character;
for (line_length = 0; line_length < LINE_LIMIT - 1 && (next_character = getchar()) != EOF && next_character !='\n'; ++line_length)
current_line[line_length] = next_character;
if (next_character == '\n')
{
current_line[line_length] = next_character;
++line_length;
}
current_line[line_length] = '\0';
return line_length;
}