как бы я узнал, что слово, читаемое fgets, находится в новой строке?

Я читаю программу на C, и я хочу найти новую строку, но я не знаю, как это сделать.

Я читаю текстовый файл следующим образом:

    while(!feof(fp)){
         fgets(buffer, 4, fp);
    }

и мой текстовый файл выглядит так:

C01 RDA ALB NAC EDF
C02 MCA EDF SLF ADG

как бы я знал, если слово, которое читает fgets, находится в новой строке?

0
nl ja de
добавлено автор William Pursell, источник

2 ответы

Вы действительно хотите получить по три символа за раз (это то, что вы получаете для size 4, потому что fgets читает один символ меньше size ) ), таким образом получая куски

C01  RD A A LB  NAC  ED C02  MC A E DF  SLF  AD

(, обозначающий новую строку)? Я так не думаю, но вы хотите, чтобы четыре персонажа за раз и делили слово разделители.

char buffer[5];
char newline = 1;
while (fgets(buffer, sizeof buffer, fp))
{
    if (newline) puts("new line:");
    newline = buffer[3] == '\n';
    buffer[3] = '\0';
    puts(buffer);
}
0
добавлено

Вы не должны вызывать feof() перед выполнением ввода-вывода, это просто не так, как это работает.

Если вас интересует расположение каждой новой строки, прочитайте вместо этого символ символа, используя fgetc() . Затем проанализируйте поток символов в слова. Это станет тривиальным заметить, когда появляется новая линия.

0
добавлено
как я могу разобрать его на слова?
добавлено автор user1961360, источник