Подход заключается в чтении файла строка за строкой и начале фактической обработки, когда вы достигнете строки, которую вы ищете:
Вы можете использовать что-то вроде следующего, чтобы перейти к определенной строке:
char line[256]; /* or other suitable maximum line size */
while (fgets(line, sizeof line, file) != NULL) /* read a line */
{
if (count >= lineNumber)
{
//process your line in here.
}
else
{
count++;
}
}
Я не думаю, что вам нужно переходить к определенной строке, чтобы решить эту проблему. Я бы лично решил использовать что-то вроде следующего:
ЭТО PSEUDO-C - НЕ ПРОВЕРЕНО
int count = 0;
char line1[256]; /* or other suitable maximum line size */
char line2[256]; /* or other suitable maximum line size */
int read1 = fgets(line1, sizeof line1, file1);
int read2 = fgets(line2, sizeof line2, file2);
while (read1 != NULL && read2 != NULL)
{
if( strcmp ( line1, line2))
{
//lines are different. print line number and other info
}
read1 = fgets(line1, sizeof line1, file1);
read2 = fgets(line2, sizeof line2, file2);
}
fclose(file);
}
Предыдущий код также не обрабатывается, когда файлы имеют разное количество строк. Вы должны быть в состоянии расширить себя.