Как повторно прочитать файл? - C (СИ)
Формулировка задачи:
Нужно вывести на консоль исходный текстовый файл за исключением самой длинной строки.
Сначала читаем построчно,находим самую длинную строку.
Вопрос:-Как файл прочитать повторно?
Я сделал костыль(строки 19,20). Может имеется еще какое-нибудь решение?
P.S.Так-то код рабочий.
#include <stdio.h>
#include <string.h>
int main()
{
FILE *fin;
fin = fopen("input.txt", "r");
int max = 0, ns = 1, strmax;
char s[80];
while(fgets(s, 80, fin)){
if(strlen(s) > max){
max = strlen(s);
strmax = ns;
}
ns++;
}
printf("max = %d strmax = %d\n", max, strmax);
ns = 1;
fclose(fin);
fin = fopen("input.txt", "r");
while(fgets(s, 80, fin)){
if(ns != strmax)
puts(s);
ns++;
}
return 0;
}Решение задачи: «Как повторно прочитать файл?»
textual
Листинг программы
fseek (fin, 0 , SEEK_SET);
Объяснение кода листинга программы
fin- это дескриптор файла, который был открыт для чтения.0- это смещение, от которого начинается чтение файла.SEEK_SET- это константа, которая указывает на начало файла для операции смещения.- Функция
fseekиспользуется для перемещения указателя чтения в файле на указанное количество байтов.