Enviado em 20/09/2012 - 15:46h
Oi Pessoal,# include <stdio.h> # include <string.h> # include <stdlib.h> int main (){ FILE * farq; // abre lista de arquivos FILE * fref; // abre o arquivo de referencia FILE * flis; // abre lista de arquivos a serem lidos // Matriz de caracteres char M[100][25]; // contadores int i = 0; int j = 0; int l = 0; // bufferes char buffer0[100]; char buffer1[100]; char buffer2[100]; char A[30]; char B[30]; char mais[30]; // limpeza da matriz for (i = 0; i < 100; i++){ for (l = 0; l < 25; l++){ M[i][l] = '{TEXTO}'; } } fref = fopen ("ricardo.txt", "r+"); // abertura do arquivo de referencias if (fref == NULL){ printf ("\nErro ao se abrir fref!\n");} while (fgets (buffer0, 100, fref) != NULL){ // leitura do arquivo de referencia j++; sscanf (buffer0, "%s", mais); // captura das palavras-chaves (alfa-numericas) strcpy (M[j], mais); // preenchimento da matriz com as palavras capturadas acima flis = fopen ("ortolista.txt", "rw"); // abertura da lista de arquivos a serem lidos if (flis == NULL){printf ("\nErro ao se abrir flis!\n");} while (fgets (buffer1, 100, flis) != NULL){ // retirando os '\n' dos nomes dos arquivos for (i = 0; i < 100; i++){ if (buffer1[i] == '\n'){ buffer1[i] = '{TEXTO}'; } } farq = fopen (buffer1, "rw"); // abertura dos arquivos individuais contidos na lista if (farq == NULL){printf ("\nErro ao se abrir farq!\n");} while (fgets (buffer2, 100, farq) != NULL){ // leitura dos arquivos individuais sscanf (buffer2, "%s %s", A, B); // captura das duas palavras-chaves contidas na linhas if (strcmp (M[j], A) == 0){ // comparacao da primeira palavra-chave (alfa-numerica) com aquela da ultima linha da matriz j++; strcpy (M[j], B); // copia da segunda palavra-chave (apenas caracteres) do arquivo para a matriz } } fclose (farq); } fclose (flis); } fclose (fref); // -------------------------------------Impressao da Matriz-----------------------------------------// for (i = 0; i < 100; i++){ if (M[i][0] != '{TEXTO}' && M[i][1] != '{TEXTO}' && M[i][2] != '{TEXTO}'){ printf ("MATRIZ: %s\n", M[j]); } } }
Enviado em 20/09/2012 - 16:26h
Todas as chamadas a fopen() têm problemas. O modo de abertura tem de ser somente "r" ou "rt"; "rw" é terminantemente errado e "r+" não é necessário se você não pretender alterar o arquivo. Além disso, nos testes que você faz de eventual falha de abertura de cada arquivo, deveria, em caso de falha, pular a leitura de dados desse arquivo, e não apenas imprimir uma mensagem de erro.eol=strlen(str); if(eol) str[eol-1]=0;
Enviado em 20/09/2012 - 21:00h
Obrigado pela ajuda Paulo!Resolver problemas de Internet
Como compartilhar a tela do Ubuntu com uma Smart TV (LG, Samsung, etc.)
Descritores de Arquivos e Swappiness
Solução rápida para o problema do Network Manager conectar mas não navegar
Como instalar no Linux Jogos da Steam só para Windows
Instalando o Team Viewer no Debian Trixie - problema no Policykit
Como instalar o KDE3 em Distros Atuais ou Quase (4)
Mouse bluetooth OEX Motion MS 406 (0)
preciso de ajuda aqui... [RESOLVIDO] (12)
Não acesso a conta do Banco do Brasil pelo Google Chrome [RESOLVIDO] (5)