Как я могу печатать строки из нескольких файлов последовательно? - PullRequest
0 голосов
/ 02 мая 2019

Я пытаюсь написать функцию, которая содержит массив текстовых файлов, она печатает все строки с одинаковым индексом в одной строке, например:

file1:

эй

там

файл2:

1

2

вывод:

эй 1

там 2

Кажется, я не могу найти способ перебирать строки всех файлов, как кто-то сделал бы в массиве.Вот где я застрял в:

void paste(FILE** files,int argc){
    int maxLines = getMaxLines(files,argc);
    int line = 1;
    //char buf[256];
    char ch;
    for (int i=0; i<maxLines; i++){
        for (int j=1; j<argc; j++){
            while ((ch=fgetc(files[j])) != '\n'){
                putchar(ch);
            }
        }
        printf("\n");
        line++;
    }
    //printf("%d",maxLines);
}

Очевидно, что он не делает то, что задумано, но я думаю, что основная идея запечатлена в этом куске кода.Как я могу использовать индекс строки, чтобы перебрать строки?Как я могу получить доступ к каждой линии таким образом?

1 Ответ

0 голосов
/ 02 мая 2019

Создайте функцию, которая печатает строку из файла - в основном, ваш цикл while (нет необходимости в индексе строки, поскольку позиция в файле постоянна, что означает, что каждый раз, когда вы вызываете функцию для некоторого файла,будет напечатана следующая строка).

Теперь перебирайте файлы, печатая по одной строке из каждого, снова и снова, пока один из них не достигнет eof.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...