Я новичок в программировании в целом. Обратите внимание, что это домашнее задание. Я использую текстовый файл с az в нижнем регистре. Я использую команду ./a.out test.txt
для запуска программы, затем ввожу число.
мой код:
#include <stdio.h>
static void cat(FILE *fp, int num) {
int count = 0;
char buffer[4096];
while (fgets(buffer, sizeof(buffer), fp) != 0) {
if (count == num)
break;
else
count++;
fputs(buffer, stdout);
}
}
int main(int argc, char *argv[]) {
int num, count = 0;
long length;
char buffer[4096];
FILE *fp;
fp = fopen(argv[1], "r");
if (fp == NULL) {
printf("Can't open this file\n");
return 0;
}
scanf("%d", &num);
cat(fp, num);
printf("...\n");
fseek(fp, 0, SEEK_END);
length = ftell(fp);
fseek(fp, (length - 2), SEEK_SET);
printf("1\n");
while (fgets(buffer, sizeof(buffer), fp) != 0) {
fputs(buffer, stdout);
}
if (ftell(fp) == '\n') {
count++;
length = ftell(fp);
fseek(fp, (length - 4), SEEK_SET);
printf("2\n");
while (fgets(buffer, sizeof(buffer), fp) != 0) {
fputs(buffer, stdout);
}
} else { //<------ missing opening brace
length = ftell(fp);
fseek(fp, (length - 2), SEEK_SET);
printf("3\n");
while (fgets(buffer,s izeof(buffer), fp) != 0) {
fputs(buffer, stdout);
}
if (count == num) {
printf("4\n");
while (fgets(buffer, sizeof(buffer), fp) != 0) {
fputs(buffer, stdout);
}
}
fclose(fp);
return 0;
}
Пожалуйста помоги!
ftell(fp)=='\n'
? зачем ты это делаешь? - person Iharob Al Asimi   schedule 14.02.2016