int fgetc (FILE * fluxo);
Lê o caractere presente na posição atual do fluxo interno. Após a leitura, a posição atual é avançada para o próximo caractere.
A função getc é equivalente a esta, mas é normalmente implementada como um macro.
fluxo - Ponteiro para um objeto FILE que será utilizado como entrada.
Em caso de sucesso, a função retorna o caractere lido. O valor é retornado como um unsigned char convertido para um int.
Se o fluxo está no fim do arquivo ou um erro de leitura aconteceu, a função retorna EOF. As funções feof e ferror precisam ser utilizadas para distinguir entre um verdadeiro EOF ou um erro de leitura.
#include <stdio.h>
int main() {
FILE* arquivo = fopen("arquivo.txt", "r");
if(arquivo == NULL) {
fprintf(stderr, "Erro ao abrir o arquivo.txt.");
return 1;
}
int contagem = 0;
int caractere;
do {
caractere = fgetc(arquivo);
if(caractere == '\n') {
contagem++;
}
} while(caractere != EOF);
printf("O arquivo possui %d linhas.\n", contagem);
fclose(arquivo);
return 0;
}