Seguinte pessoal, eu tenho que criar um programa que leia conteúdo de alguns arquivos e procure por certas palavras chave nele, eu estava criando ele mas chego em um ponto que não compila mais, vou explicar detalhadamente o que planejei pra vocês poderem me ajudar melhor:
1-Criar as seguintes funções:
1.1-Criar função para abrir arquivo
1.2-Ler arquivo e contar tamanho(qtos caracteres ocupa)
1.3-Função para criar vetor com tamanho exato do 1.2 ( TRAVEI AQUI )
1.4-Comparar qtas vezes aparece (ainda não fiz)
1.5-Criar lista encadeada (para armazenar qtas vezes aparece etc. e já ir indexando pois podem ser qtos o usuário quiser) (também não fiz)
O compilador não prossegue a partir do 1.3, queria saber onde eu tô errando, honestamente não faço a menor ideia, grato pela atenção!!!
#include <stdio.h>
#include <stdlib.h>
void create(FILE *fp,int x){ /** Cria um vetor alocado dinamicamente */
char *v;
int i=0;
char ch;
v=(char *)malloc(x*sizeof(char ));
ch=getc(fp);
while(ch!=EOF){
i=++i;
ch=getc(fp);
v=ch;
printf("%c",v);
}
}
int read_arq(FILE *fp){ /**< Função que le texto(cont.do arquivo) e conta o tamanho de caracteres (para alocar vetor)*/
int a=0;
char ch;
ch = getc(fp);
while (ch!=EOF) {
a=++a;
putchar(ch);
ch = getc(fp);
}
printf("%d",a);
return a;
}
void procura_palavra(FILE *fp, char palavra[60]){
int num; /**< variavel usada para contar qtd. de posições no vetor */
char *x; /**< a ser usada em strcmp 1.4 */
scanf("%s",&palavra);
num=read_arq(fp);
printf("\n-------------------------\n-->%d",num);
}
int abre_arquivo(){ /** Abre o arquivo texto desejado */
char nome[20];
char busca[60];
FILE *fp = 0; /** Ponteiro do arq. a ser lido */
scanf("%s",nome); /** Nome do arquivo a ser lido */
fp = fopen(nome,"r");
if ( (fp=fopen(nome,"r")) == NULL ){
printf("Erro!!!");
exit(1);
}
else
printf("________busca:\n");
procura_palavra(fp,busca);
}
int main(int argc, char **argv[]){
abre_arquivo();
return 0;
}