Я новичок в программировании на языке C. Я пытаюсь практиковать простое упражнение: это:Требуется уточнение относительно функции получения в C
Напишите программу, которая читает строки ввода один за другим до тех пор, пока не будет достигнут конец файла, не определит длину каждой строки ввода, а затем распечатает только самая длинная линия, которая была найдена. Вы можете предположить, что максимальная длина входной строки составляет 1000 символов.
Мой код наклеен здесь:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_LEN 1000
int main(void)
{
char line[MAX_LEN], line_temp[MAX_LEN];
int largest_line_size = 0;
int current_line_size;
while (gets (line_temp) != NULL)
{
if ((current_line_size = strlen(line_temp)) > largest_line_size)
{
strcpy(line, line_temp);
largest_line_size = current_line_size;
}
/*printf("%s\n", line); */
}
printf("%d", largest_line_size);
printf("%s", line);
return EXIT_SUCCESS;
}
Проблема заключается в том, что код работает, принимает входные данные, но я никогда не добраться до точки, где разрывы цикла. Как я могу найти указатель NULL при использовании функции gets()?
Ваша помощь очень ценится.
Спасибо,
_Until конец файла достигнут ..._ не уверен, что вы делаете правильно, IMO ?! – Bateman
Вопросы говорят до тех пор, пока не будет достигнут конец файла. Это не значит, что это чтение из файла, это вполне может быть stdin. В любом случае, как я могу проверить, не предоставлен ли пользователем дополнительный поток через поток stdin? – user3317287