@devair1010 Eu estou com problema na leitura da descrição e do fornecedor, se eu coloco os números usando virgula para separar o preço ele não lê corretamente a parte de descrição e fornecedor nem o preço de venda, ai vira uma bagunça e sai errado, porém se eu coloco com ponto ele lê corretamente. Queria saber como corrigir isso pra ele executar normalmente tanto com um quanto com o outro
#include <stdio.h>
#include <string.h>
#include <locale.h>
#define MAX 80
int main(){
int escolha,lin,col, total_prod=0,num_cadastro=0,zerar_col;
int a = 0;
float produtos[3][3], codigo;
char descricao[50][50], fornecedor[50][50];
char linha[MAX];
FILE *pba;
char *nome = "tarefa_Rodney.txt";
while(escolha!=5){
printf("Escolha uma das opções abaixo \n");
printf("1-Cadastar produto \n");
printf("2-listar todos os produtos \n");
printf("3-Remover produto \n");
printf("4-salvar produtos em arquivo texto \n");
printf("5-Sair\n");
scanf("%d", &escolha);
switch(escolha){
case 1:
printf("Quantos produtos vai cadastrar? \n");
scanf("%d",&num_cadastro);
for (lin=0; lin<num_cadastro; lin++) {
total_prod++;
for(col=0; col<4;) {
do{
printf("[%d]-[%d]Qual o codigo do produto? O codigo tem que ser diferente de 0 \n",lin, col);
scanf("%f",&produtos[lin][col]);
}while(produtos[lin][col] == 0);
col++;
do{
printf("[%d]-[%d]Qual a quantidade? a quantidade tem que ser diferente de 0 \n", lin, col);
scanf("%f",&produtos[lin][col]);
}while(produtos[lin][col]== 0);
col++;
printf("[%d]-[%d]Qual o preco de venda? \n", lin, col);
scanf("%f", &produtos[lin][col]);
col++;
printf("[%d]-[%d]Qual o preco de compra? \n", lin, col);
scanf("%f", &produtos[lin][col]);
col++;
}
printf("Qual a descricao?\n");
scanf("%s",&descricao[lin]);
printf("Qual o fornecedor? \n");
scanf("%s", &fornecedor[lin]);
}
break;
case 2:
if(total_prod==0){
printf("Não ha nenhum produto cadastrado\n");
break;
}
for (lin=0; lin<num_cadastro; lin++){
for (col=0; col<4;){
printf("Codigo do produto m[%d][%d] = %.2f \n", lin, col, produtos[lin][col]);
col++;
printf("Quantidade m[%d][%d] = %.2f \n", lin, col, produtos[lin][col]);
col++;
printf("Preco de venda m[%d][%d] = %.2f \n", lin, col, produtos[lin][col]);
col++;
printf("Preco de compra m[%d][%d] = %.2f \n", lin, col, produtos[lin][col]);
col++;
}
printf("Forncedor: %s\n",fornecedor[lin]);
printf("Descricao: %s\n", descricao[lin]);
}
break;
case 3:
printf("Qual o codigo do produto?\n");
scanf("%f", &codigo);
for(lin=0; lin<num_cadastro; lin++){
zerar_col=lin;
for(col=0; col<4; col++){
if(codigo==produtos[lin][col]){
for(col=0; col<4; col++){
produtos[zerar_col][col] = 0;
}
strcpy(fornecedor[zerar_col], " ");
strcpy(descricao[zerar_col], " ");
total_prod= total_prod - 1;
break;
}else{
printf("produto nao encontrado\n");
break;
}
}
}
break;
case 4:
if((pba=fopen(nome,"w+")) == NULL){
printf ("\n\nNao foi possivel abrir o arquivo.\n\n");
return 1;
}
for(lin=0; lin<num_cadastro; lin++){
for(col=0; col<4; col++){
fprintf(pba,"Codigo do produto m[%d][%d] = %.2f \n", lin, col, produtos[lin][col]);
col++;
fprintf(pba,"Quantidade m[%d][%d] = %.2f \n", lin, col, produtos[lin][col]);
col++;
fprintf(pba,"Preco de venda m[%d][%d] = %.2f \n", lin, col, produtos[lin][col]);
col++;
fprintf(pba,"Preco de compra m[%d][%d] = %.2f \n", lin, col, produtos[lin][col]);
col++;
}
fprintf(pba,"Descricao produto: %s\n", descricao[lin]);
fprintf(pba, "Fornecedor: %s\n", fornecedor[lin]);
}
fclose(pba); // fecha arquivo
printf("\nArquivo %s gravado com sucesso!\n", nome);
return 0;
case 5://teste
printf("Obrigado por usar este programa");
break;
}
}
}