Ler somente linhas que contenham caracteres
Boa noite!
Não sei se o título ajuda muito, mas vou expor a finalidade do programa de forma mais clara:
O programa deverá ler todas as linhas de um arquivo txt fixo, devendo ignorar as linhas em branco, lendo apenas as linhas preenchidas com um ou mais caracteres.(o tipo do caractere digitado no texto nao é relevante, a finalidade do programa é apenas somar a quantidade de linhas preenchidas, devolvendo o total dessas linhas que estão preenchidas para o usuário. Se o usuário for na pasta local, abrir o txt e inserir mais linhas, o programa deverá lê-lo informando o novo valor.
ex:
1ª linha. fórum
2ª linha.
3ª linha. i
4ª linha.
5ª linha.
6ª linha.
7ª linha.
8ª linha.
9ª linha. masters
o programa deverá devolver um total de linhas = 3.
infelizmente o conteúdo abordado até agora em sala de aula nao correspondeu com o tema proposto.
/ Conta número de linhas de um arquivo /
#include <stdio.h>
int main (void)
{
int c;
int c2;int nlinhas = 0; / contador do número de linhas /
int nlinhasbranco = 0;
int total;
FILE *fp;/ abre arquivo para leitura /
fp = fopen("entrada.txt","rt");
if (fp==NULL) {
printf("Não foi possivel abrir arquivo.\n");
return 1;
}/ lê caractere a caractere /
while ((c = fgetc(fp)) != EOF) {
if (c == '\n')
nlinhas+= 1;
}while ((c2 =fgetc(fp)) !=EOF) {
if (c2 == '/')
nlinhasbranco+= 1;
}
/ fecha arquivo /
fclose(fp);
/ exibe resultado na tela /
total = nlinhas - nlinhasbranco;
printf("Numero de linhas = %d\n", total);
return 0;
}
while ((c2 =fgetc(fp)) !=EOF) {
if (c2 == '/')
nlinhasbranco+= 1;
}
/ fecha arquivo /
fclose(fp);
/ exibe resultado na tela /
total = nlinhas - nlinhasbranco;
printf("Numero de linhas = %d\n", total);
return 0;
}
Não entendo muito da sintaxe de c, tentei representar linhas brancas de várias formas... a ideia era ter um total de linhas e um total de linhas brancas, a diferença (nlinhas - nlinhasbranca) seria o total de linhas preenchidas.
Discussão (3)
Carregando comentários...