How to get the data output in a file

Asked

Viewed 36 times

1

I’m with a doubt, I’m only able to input the data by file, as it would be to get the output of the data in a file called "Output"?

//abertura dos arquivos
FILE *arquivo;
printf("Informe qual arquivo será aberto\n--> ");
scanf("%s", arquivoInformado);
strcat(arquivoInformado, ".txt");
arquivo = fopen(arquivoInformado, "r");

//verificação se o arquivo existe e caso exista mostra uma mensagem
if (arquivo != NULL) {
    printf ("Arquivo aberto com sucesso\n\n");
//se o arquivo não existir mostra o erro na tela    
} else
        printf ("Não foi possível abrir o arquivo\n");   

fscanf(arquivo,"%i %i %i %i %i %i %i %i %i %i", &zona, &secao, &urna, &candidato1, &candidato2, &candidato3, &candidato4, &candidato5, &nulos);
 printf(" zona: %i\n secao: %i\n urna: %i\n Candidato1: %i\n Candidato2: %i\n Candidato3: %i\n Candidato4: %i\n Candidato5: %i\n Nulos: %i\n Brancos: %i\n\n", zona, secao, urna, candidato1, candidato2, candidato3, candidato4, candidato5, nulos, branco);
    fclose (arquivo);

1 answer

0

I think the problem statement is confused, I put an initial solution anyway .

#include <stdio.h> // para scanf, printf, etc
#include <stdlib.h> // para exit
#include <string.h> // para strcat

int main()
{
  FILE* fpArqEntrada;
  FILE* fpArqSaida;

  char arqEntrada[80];
  char arqSaida[] = "saida.txt";

  // valores a serem lidos do arquivo de leitura
  int zona, secao, urna, candidato1, candidato2, candidato3, candidato4, candidato5, nulos;

  int nCposLidos;

  printf("*\n");
  printf("* informe nome do arquivo a ser lido: ");
  if (scanf("%s", arqEntrada) != 1)
  {
    printf("* erro na leitura do nome do arquivo de leitura\n");
    exit(1);
  }
  strcat(arqEntrada, ".txt");

  fpArqEntrada = fopen(arqEntrada, "rb");
  if (fpArqEntrada == NULL)
  {
    printf("* erro na abertura do arquivo de leitura %s\n", arqEntrada);
    exit(1);
  }

  printf("* ok, abriu arquivo %s\n", arqEntrada);

  // leitura dos valores
  nCposLidos = fscanf(fpArqEntrada,
    " %*s %i"  // zona
    " %*s %i"  // secao
    " %*s %i"  // urna
    " %*s %i"  // candidato 1
    " %*s %i"  // candidato 2
    " %*s %i"  // candidato 3
    " %*s %i"  // candidato 4
    " %*s %i"  // candidato 5
    " %*s %i", // nulo
    &zona, &secao, &urna, &candidato1, &candidato2,
    &candidato3, &candidato4, &candidato5, &nulos);

  if (nCposLidos != 9)
  {
    printf("* erro na leitura dos valores do arquivo de leitura: nCposLidos=\n", nCposLidos);
    exit(1);
  }

  printf("* zona: %i\n", zona);
  printf("* secao: %i\n", secao);
  printf("* urna: %i\n", urna);
  printf("* candidato1: %i\n", candidato1);
  printf("* candidato2: %i\n", candidato2);
  printf("* candidato3: %i\n", candidato3);
  printf("* candidato4: %i\n", candidato4);
  printf("* candidato5: %i\n", candidato5);
  printf("* nulos: %i\n", nulos);

  // agora vamos gravar no arquivo de saida

  fpArqSaida = fopen(arqSaida, "wb");
  if (fpArqSaida == NULL)
  {
    printf("* erro na abertura do arquivo de saida\n");
    exit(1);
  }

  printf("* ok, abriu arquivo saida.txt\n");

  fprintf(fpArqSaida, "* zona: %i\n", zona);
  fprintf(fpArqSaida, "* secao: %i\n", secao);
  fprintf(fpArqSaida, "* urna: %i\n", urna);
  fprintf(fpArqSaida, "* candidato1: %i\n", candidato1);
  fprintf(fpArqSaida, "* candidato2: %i\n", candidato2);
  fprintf(fpArqSaida, "* candidato3: %i\n", candidato3);
  fprintf(fpArqSaida, "* candidato4: %i\n", candidato4);
  fprintf(fpArqSaida, "* candidato5: %i\n", candidato5);
  fprintf(fpArqSaida, "* nulos: %i\n", nulos);

}

File voting.txt:

zona         1
secao        2
urna         3
candidato1   4
candidato2   5
candidato3   6
candidato4   7
candidato5   8
nulos        9

Testing:

$./380961 
*
* informe nome do arquivo a ser lido: votacao
* ok, abriu arquivo votacao.txt
* zona: 1
* secao: 2
* urna: 3
* candidato1: 4
* candidato2: 5
* candidato3: 6
* candidato4: 7
* candidato5: 8
* nulos: 9

$cat saida.txt 
* zona: 1
* secao: 2
* urna: 3
* candidato1: 4
* candidato2: 5
* candidato3: 6
* candidato4: 7
* candidato5: 8
* nulos: 9

$
  • Thank you Zentrunix, helped me a lot, I was not understanding the concept to output data on file, helped me a lot!

Browser other questions tagged

You are not signed in. Login or sign up in order to post.