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!
– J. Zac