mr_quintas
Power Member
boas...
estava a criar um programa que me conte o numero de linhas em vários ficheiros sem ser necessário por a extensão
ex.:
./contar_linhas aa bb cc
resulatdo:
Ficheiro aa 3 linhas
Ficheiro bb 2 linhas
Ficheiro cc Erro nao existe
ainda só fiz pra ler um ficheiro e com extensão se alguém me poder ajudar agradecia
estava a criar um programa que me conte o numero de linhas em vários ficheiros sem ser necessário por a extensão
ex.:
./contar_linhas aa bb cc
resulatdo:
Ficheiro aa 3 linhas
Ficheiro bb 2 linhas
Ficheiro cc Erro nao existe
ainda só fiz pra ler um ficheiro e com extensão se alguém me poder ajudar agradecia
Código:
#include <unistd.h>#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define exit_on_null(s,m) if (s == NULL) { perror(m); exit(1); }
int main (int argc, char *argv[])
{
FILE * fp; char * line=NULL; ssize_t n=0;
/* Usage */
int nl=0, nc=0, npp=0, i=0;
if (argc!=2)
{
printf("Usage: %s <file name>\n",argv[0]);
exit(1);
}
fp=fopen(argv[1],"r"); /*Abre ficheiro para leitura*/
exit_on_null (fp,"Erro na abertura"); /*Leitura linha a linha*/
while ((n = getline(&line, &n, fp)) != -1)
{
nl++;
line[strlen(line)-1]='\0'; /*Retira \n do final da linha*/
nc+=strlen(line);
for (i=0; i<strlen(line)-1; i++)
{
if (line[i]==' ')
npp++;
}
printf("%s\n",line);
printf(" Linhas:%d \n Palavras:%d \n Caracteres:%d \n",nl,npp,nc);