Как мне прочитать определенное количество строк в C? Любые советы, так как я не могу найти соответствующую тему.
Я хотел бы прочитать N строк из файла, и N будет аргументом, заданным пользователем.
До этого момента я читал файлы таким образом: (строка за строкой до NULL)
int main(void) {
char line[50];
FILE *file;
file= fopen("filename.txt", "r");
printf("File includes:\n");
while (fgets(line, 50, file) != NULL) {
printf("%s", line);
}
fclose(file);
return(0);
}
Итак, вы хотите напечатать строки 1..N? Вам нужно изменить определение main()
, чтобы у вас был доступ к аргументам командной строки. Вам нужно проверить, что вы получили числовой аргумент и преобразовать его. Затем считайте строки по мере их чтения, останавливаясь, когда вы набираете N строк.
у меня нет! Это хорошая идея.
@JonathanLeffler да, это цель! Я соответствующим образом изменю свой код. Спасибо за отличный совет!
@rainer Количество строк, которые вы прочитали, означает, сколько раз вы нашли \n
, а не сколько раз вы позвонили fgets
.
Если пользователь задает N
, вы можете просто увеличить количество циклов до N
:
for (int i = 0; i < N && fgets(line, sizeof line, file); ++i) {
fputs(line, stdout);
}
Пробовали ли вы использовать переменную для подсчета количества прочитанных строк?