ContaLinha
Por: fabiofsl • 29/9/2015 • Trabalho acadêmico • 2.951 Palavras (12 Páginas) • 233 Visualizações
- INTRODUÇÃO
Muitos programas de computador do tipo “Console” são utilizados todos os dias. Para a plataforma Linux, esta é uma afirmação quase que incorporada à estrutura do próprio SO (Sistema Operacional). No SO Windows, os aplicativos de console, que são simples em interface, mas que desempenham tarefas muitas vezes sofisticadas, não são tão comuns à experiência típica de uso do sistema. Por exemplo, pode-se citar desde programas de linha de comando como “ipconfig” que auxilia na visualização das configurações de rede de um PC (personal computer), até programas como o “taskkill” que auxiliam o usuário a eliminar processos ativos na memória do computador.
Para chamar o nosso programa através do promp de comando do Dos é preciso passar parâmetros para a função principal. Esses parâmetros são: um inteiro (argc) e um ponteiro para string (argv), onde o argc recebe a quantidade de argumentos e o argv[] recebe o argumento. O argc será no mínimo 1 que é o nome do programa que vamos chamar na linha de comando do promp. Portanto o argv[0] sempre será o nome do programa.
2. LAYOUT DO PROGRAMA
2.1. Main.c
int main(int argc, char **argv)// Parâmetros que serão digitados na linha de comando do prompt.
{
Contalinha(argv[argc-1], comentario);// Chamada da função contadora de linhas.
return 0;
}
2.2. Contalinha.h
void Contalinha(char n_arquivo[], int comentario);
2.3. Contalinha.c
void Contalinha(char n_arquivo[], int comentario){
FILE *file;// Ponteiro para arquivo.
file = fopen(n_arquivo, "r");// Abertura do arquivo para leitura em modo texto.
}// Fim da função.
3. ELABORAÇÃO DA FUNÇÃO PRINCIPAL
#include <stdio.h>// Comandos de entrada e saída.
#include
#include
#include "Contalinha.h"// Biblioteca da função Contalinha.
int main(int argc, char **argv)// Parâmetros que serão digitados na linha de comando do prompt.
{
system("cls");// Limpa a tela no prompt de comando.
int comentario=0;// Flag para incluir ou não as linhas comentadas.
int i;// Contador.
if(argc==2)comentario = 0;// O flag de comentario é zero caso não seja digitado -c.
else
for(i=1; i
if(strcmp("-c", argv[i])==0)comentario = 1;
Contalinha(argv[argc-1], comentario);// Chamada da função contadora de linhas.
puts("\n\n");
system("pause");
return 0;
}
O nome do programa é o parâmetro obrigatório e os parâmetros opcionais serão o “-h” para mostrar a ajuda de como usar o programa, e também o “-c” para incluir as linhas comentadas na contagem.
4. ARQUIVO
Para entender como desenvolver a função de contagem de linhas é preciso entender como funciona a leitura de um arquivo. Como exemplo, vamos usar o seguinte texto:
Olá,
Seja bem vindo!
A leitura deste texto é feita da seguinte maneira no arquivo:
O | l | á | , | \n | S | e | j | a | b | e | m | v | i | n | d | o | ! | EOF |
O caracter especial \n é para delimitar o fim da linha. Já a constante EOF indica o fim do arquivo.
A ideia é, através do caracter \n, contar o número de linhas do programa. Mas para contar as linhas comentadas é preciso identificar os caracteres // para linha única de comentário e /* */ para bloco de comentários.
5. CODIGO-FONTE DA FUNÇÃO CONTADORA DE LINHAS
#include
#include
#include
void Contalinha(char n_arquivo[], int comentario){
FILE *file;// Ponteiro para arquivo.
/* Declaração de variáveis.*/
char texto[sizeof(file)*1024];// A string texto terá o tamanho do arquivo em Byte, pois cada caracter ocupa um Byte na memória.
char ch;// Para ler caracter a caracter do arquivo.
int linha=0, vazia=0, coment=0, t_linha=0, cont=0, x;// Contadores.
int bcom=0, lcom=0, lvazia=0, cvazia=0;// Flag (sinalizadores).
...