roguewh
(usa Debian)
Enviado em 04/06/2014 - 18:35h
Bom pessoal, sou membro do vivaolinux tem tempo (+ - 2011), mas só agora estou postando algo. (No caso, uma dúvida besta =/).
Bom, peguei um exercício da faculdade pra resolver, mas não estou conseguindo encontrar o erro dentro do MEU próprio código. Tentei fazer um debug, minha IDE não está ajudando (geany) e resolvi tentar algo aqui.
#include <stdio.h>
#include <stdlib.h>
int main(){
int a =0, i=0; // ???
float num[a];
char nomeArq[50];
printf("Digite o nome do arquivo: ");
gets(nomeArq);
FILE *arqBin = fopen("Nrs.bin", "rb");
FILE *arqTxt = fopen(nomeArq, "w");
if(arqBin == NULL){
printf("Erro ao tentar abrir arquivo binário. Tentar novamente!");
return 0;
}
// Laço pra ler o arquivo binário
int cont=0;
while(!feof(arqBin)){
fread(&num[a], sizeof(float), 1, arqBin );
if(num[a] >= 50){
i++; // Toda vez q entrar ele adiciona +1(final de 7 fazer um \n)
fprintf(arqTxt, "%.1f ", num[a]);
printf("%.1f \n", num[a]);
cont++; // Contagem pra ser usado mais tarde / Organizar (?)
if(i == 7){ // Pular linha...
fprintf(arqTxt, "\n");
i = 0; // Libera tudo pra recomeçar
}
}
}
printf("\n%i\n", cont);
for (a=0;a<1000;a++){ // For com problema, não lista nada e dá erro
printf("%.1f \n", num[a]); // na metade da execução...
}
return 0;
}
(desculpe, não sei o melhor modelo de formatar aqui.)
O principal problema é o seguinte: Se eu retirar esse ultimo FOR (problema ao executar), o arquivo é lido e enviado para um arquivo texto normalmente (o arquivo binário foi desenvolvido em outro programa), mas preciso pegar esse arquivo.txt e organizar os valores DENTRO dele.
QUALQUER ajuda é muito bem vinda, obrigado!
Alex.