My reading has been set to the point of comma, but he is reading every field to the end of the line when you read the string. The code is read correctly, but only in code.
#include <stdio.h>
#include <string.h>
struct setorEletronicos {
int codigo;
char descricao[100];
int altura;
int largura;
int profundidade;
float preco;
int estoque;
char cor[100];
} ;
int main() {
int i = 0;
FILE *arquivo;
struct setorEletronicos eletro[50];
if ((arquivo = fopen("eletro.txt", "r")) == NULL) {
printf("Erro ao abrir o arquivo.\n");
} else {
while (!feof(arquivo)) {
fscanf(arquivo, "%d[^,]", &eletro[i].codigo);
fscanf(arquivo, "%s[^,]", eletro[i].descricao);
fscanf(arquivo, "%d[^,]", &eletro[i].altura);
fscanf(arquivo, "%d[^,]", &eletro[i].largura);
fscanf(arquivo, "%d[^,]", &eletro[i].profundidade);
fscanf(arquivo, "%f[^,]", &eletro[i].preco);
fscanf(arquivo, "%d[^,]", &eletro[i].estoque);
fscanf(arquivo, "%s[^\n]", eletro[i].cor);
i++;
}
fclose(arquivo);
}
int aux;
for (aux = 0; aux < i; aux++) {
printf("%d \n", eletro[aux].codigo);
printf("%s \n\n", eletro[aux].descricao);
}
return (0);
}
file electro.txt
100,Geladeira,180,90,89,1200.00,4,branca
101,Geladeira,180,90,89,1200.00,2,prata
102,Aspirador,30,50,60,149.99,5,vermelho
103,Aspirador,30,50,60,149.99,3,azul
104,Ar Condicionado 18000BTU,50,100,40,2967.00,13,branco
105,Ar Condicionado 9000BTU,50,80,40,1299.00,10,branco
106,TV LCD 42,80,110,15,2500.00,25,preto
105,Forno Eletrico com Microondas,39.2,52.7,0.48,1688.39,7,prata
106,Lavadora de Roupas 1Kg,46,32,32.9,435.00,1,branco
107,Lavadora de Roupas 10Kg,146,70,72.5,959.00,2,branco
108,Radio CD MP3,12.2,34.1,23.6,199.99,100,preto
109,Antena de TV Externa,16.2,118.5,6.5,199.00,5,cinza
110,TV 29 Slim,70,85,65,599.99,3,preta