Я пытаюсь прочитать символ новой строки в текстовом файле и, таким образом, подсчитать количество строк в текстовом документеОпределение символов новой строки в файле с помощью C
Содержание файла .txt:
Мои
Имя
Является
Джон
Выход моего кода:
Нм
s
на
числа строчками 1
Мой код:
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
int main()
{
FILE* filepointer ;
filepointer = fopen("C:\\Users\\Summer Work\\Let's C\\Comnsole\\TestFile.txt","rb+") ;
int count = 0 ;
int ch;
printf("%c\n",ch) ;
while ((ch = fgetc(filepointer)) != EOF)
{
printf("%c",ch) ;
ch = fgetc(filepointer) ;
char dh = ch;
if (dh == '\n')
count++ ;
}
printf("\nLine number is %d",count) ;
fclose(filepointer) ;
getchar() ;
return 0;
}
Может Сомон, пожалуйста, объясните, почему это происходит?
Update: Исправлен код
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
int main()
{
FILE* filepointer ;
filepointer = fopen("C:\\Users\\Summer Work\\Let's C\\Comnsole\\TestFile.txt","rb+") ;
int count = 0 ;
int ch;
while ((ch = fgetc(filepointer)) != EOF)
{
printf("%c",ch) ;
if (ch == '\n')
count++ ;
}
printf("\nLine number is %d",count) ;
fclose(filepointer) ;
getchar() ;
return 0;
}
ВЫВОД
Мой
Имя
Является
Джон
Количество Линия 3
Вы вызываете 'fgetc' дважды в каждом цикле. Таким образом, вы печатаете/проверяете альтернативные символы. –
Примечание: нет необходимости копировать 'ch' в переменную типа' char', так как '' \ n'' имеет тип 'int'. –
О, отсортировано. Спасибо! @Vane –