Вы читаете каждый отдельный символ в файле и складываете те, которые являются символами новой строки.
Вы должны заглянуть в fgetc()
для чтения символа и помнить, что он вернет EOF
в конце файла и \n
для символа конца строки.
Тогда вам просто нужно решить, является ли последняя неполная строка (т. Е. Файл не имеет новой строки в конце) строкой или нет. Я бы сказал, да, сам.
Вот как я это сделаю, конечно же, в псевдокоде, поскольку это домашнее задание:
open file
set line count to 0
read character from file
while character is not end-of-file:
if character in newline:
add 1 to line count
read character from file
Расширение этого для обработки неполной последней строки может быть необязательным для этого уровня вопроса. Если равно (или вы хотите попробовать дополнительные кредиты), вы можете посмотреть:
open file
set line count to 0
set last character to end-of-file
read character from file
while character is not end-of-file:
if character in newline:
add 1 to line count
set last character to character
read character from file
if last character is not new-line:
add 1 to line count
Нет гарантий, что кто-то из них сработает, так как они находятся у меня на макушке, но я бы удивился, если бы они не сработали (однако это не будет первым или последним сюрпризом, который я видел) - проверь это хорошо).