Ir para conteúdo
Fórum Script Brasil

marcelonunes06

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Sobre marcelonunes06

marcelonunes06's Achievements

0

Reputação

  1. Estou escrevendo um código onde preciso ler dois arquivos: em um deles há apenas uma linha com 20 caracteres; no outro há muitas linhas, todas com 20 caracteres. Meu objetivo é comparar cada linha do segundo arquivo com a única linha do primeiro arquivo. O resultado da comparação será gravado em um terceiro arquivo onde para cada caractere que coincidir, eu atribuo o valor 1 e, para cada caractere que não coincidir, eu atribuo 0. O que não consigo compreender é porque, apesar da função fgets está capturando todos os caracteres desejados dos arquivos, ela não está comparando o primeiro caractere do arquivo 1 com o primeiro caractere de cada linha do arquivo 2. (sei disso porque, antes do laço, se eu imprimo os caracteres lidos do arquivo 1, eu consigo visualizar todos que desejo. Porém, se imprimo os caracteres lidos do mesmo arquivo, dentro do laço, o código não imprime o primeiro caractere do arquivo 1). Abaixo, o código. #include <stdbool.h> #include <string.h> #include <stdlib.h> #include <locale.h> #include <stdio.h> main(){ //Declara variáveis e solicita do usuário a entrada do gabarito oficial char gabarito_oficial[21],gabarito_individual[21]; int i=0; //abre o arquigo de gabaritos dos candidatos para leitura e cria e abre o arquivo onde irá escrever os gabaritos corrigidos //também abre o arquivo com o gabarito oficial FILE *fp1=fopen("gabaritos.txt","r"); if (fp1==NULL) printf("não foi possível abrir o arquivo gabaritos.txt"); FILE *fp2=fopen("gabaritos_corrigidos.txt","w"); if (fp2==NULL) printf("não foi possível criar o arquivo gabaritos_corrigidos.txt"); FILE *fp3=fopen("gabarito_oficial.txt","r"); if (fp3==NULL) printf("não foi possível abrir o arquivo gabaritos.txt"); //laço para ler o gabarito de cada candidato individualmente e comparar item a item com o gabarito oficial que está na variável //gabarito_oficial fgets(gabarito_oficial,22,fp3); while (fgets(gabarito_individual,22,fp1)!=NULL){ while (i<20){ if(gabarito_individual==gabarito_oficial) fputc(49,fp2); else fputc(48,fp2); i=i+1; } i=0; fputc(10,fp2); } fclose(fp1); fclose(fp2); fclose(fp3); return 0; }
×
×
  • Criar Novo...