0
I’m starting to learn about C structs, but I’m having trouble trying to store data in user-filled empty strings. When the user inserts a product description at the first time of the repeat loop, the code works normally, but if it inserts at the second variable i receives memory junk and the program terminates.
My code is this::
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <locale.h>
struct produto{
int codigo;
char descricao[50];
float preco;
int saldo;
};
int main() {
struct produto ficha[2];
int i;
setlocale(LC_ALL,"Portuguese");
for(i=1; i<=2;i++){
printf("Digite a descrição do produto %d: ", i);
fgets(ficha[i].descricao, 30, stdin);
ficha[i].descricao[strlen(ficha[i].descricao)-1]='\0';
printf("Digite o código do produto %d: ", i);
scanf("%d", &ficha[i].codigo);
fflush(stdin);
printf("Digite o preço do produto %d: ", i);
scanf("%f", &ficha[i].preco);
fflush(stdin);
printf("Digite o saldo em estoque do produto %d: ", i);
scanf("%d", &ficha[i].saldo);
fflush(stdin);
printf("\n");
}
for(i=1; i<=2; i++){
printf("\nCódigo: %d\n", ficha[i].codigo);
printf("Descrição: %s\n", ficha[i].descricao);
printf("Preço: %.1f\n", ficha[i].preco);
printf("Saldo: %d\n\n", ficha[i].saldo);
}
return (0);
}
I can’t believe I didn’t notice that. Thanks for the help!! It worked.
– Paulo Arthur