Vous êtes sur la page 1sur 2

#include<stdio.h> #include<string.h> #include<stdlib.h> //Inclui o arquivo que contm as funes de Calculo de nmero de linhas #include "LibCodeCount.

c" int main(int argc, char *argv[]) { FILE *pFile; char car1, car2; int nLines = 0, nLinesComment = 0, nLinesEmpty = 0; //Abro o arquivo para verificar se o mesmo existe. pFile = fopen(argv[1],"r"); //Verifica se o arquivo foi aberto. if(pFile != NULL) { car1 = fgetc(pFile); /*Ir verificar todos os caracteres do arquivo, para localizar // --> Comentrio de linha. /* e * / --> Comentrio em bloco e contar todas as linhas do comentrio. \n --> Quebra de linha, indica que a linha terminou. */ while (car1 != EOF){ //Se encontrar um \n conta uma linha em branco. if(car1 =='\n') { nLines++; } //Verifica se o caracter atual /, se esta afirmao for //verdadeira e o prximo caracter for = * ser iniciado o //processo de contagem das linhas do comentrio em bloco. if(car1== '/'){ car2 = fgetc(pFile); //Conta as linhas dos comentrios em bloco. if(car2 == '*'){ do{ do{ car1 = fgetc(pFile); if(car1 == '\n' && car1 != car2) { //Conta as linhas do bloco de comentrio. nLinesComment++; //Contagem de linhas do arquivo. nLines++; } //Se for encontrado um \n no bloco de comentrio, //o mesmo no contado como comentrio e sim //como linha em branco. else if(car1 == '\n' && car2 == '\n') { nLinesEmpty++; } car2 = car1; } while(car1 != '*'); car1 = fgetc(pFile); //At que seja encontrado */ a rotina de contagem de //linhas no bloco de comentrio ser execultada. }

while(car1 != '/'); } //Conta os comentarios de uma unica linha if(car1 =='/' && car2 =='/') { nLinesComment++; } } car2 = fgetc(pFile); //Conta as linhas em branco if(car2 =='\n' && car1 == '\n') { nLinesEmpty++; nLines++; } car1 = car2; } //Fecho o arquivo. fclose(pFile); //Chamada para a funo que ir exibri os contadores das linhas. ccRun(argv[1],nLines,nLinesComment,nLinesEmpty); } //Se o arquivo no foi encontrado informado ao usurio. else { printf("\nNao foi possivel abrir o arquivo %s.\n\n",argv[1]); } }