Академический Документы
Профессиональный Документы
Культура Документы
1) Variáveis tipo “char” não utilizarão “scanf” porque o tipo “char” poderá ou precisará receber espaços em branco.
No lugar de scanf usar fgets() – pesquisar os parâmetros necessários para uso do fgets()
OU usar scanf(“%[^\n]s”,&variável); (este é mais interessante)
2) Após um campo com fgtes() será necessário limpar o buffer de teclado com setbuf() – pesquisar os parâmetros para setbuf()
1) Será preciso converter os valores monetários que estão com VÍRGULA nas casas decimais, substituindo por PONTO, pois o MySQL não aceita
vírgula e sim ponto par separar decimais.
a) Para conseguir fazer esta conversão, poderemos montar um pequena função para facilitar este trabalho.
c) A função deverá receber o valor tipo float (que está com vírgula), transformar esse valor como tipo char (string) que retornará com o ponto na
casa decimal (ou seja trocar a vírgula por ponto!).
d) Com certeza na função constará o comando: snprintf() – converte de float para string.
DICA: depois de convertido, varremos com FOR a variável para substituir a vírgula por ponto !!
e) Direto na função ou mesmo no retorno do chamado à função, com certeza teremos que usar strcpy() – para copiar o tipo *char para char[19]
por que a função retornará *char e será preciso que ela aceite esse conteúdo como string.
Podendo ficar desse jeito: (de graça para colocar direto no “mp_incluir.c” chamando a função que vc vai construir!)
char s_percentual[19]; // usando 19 por ser mais seguro para tratar o valor
strcpy( s_percentual,func_converte_decimal( percentual ) );
2) Se a conversão ficou ok, chamar a função conecta() – que faz a conexão com o Banco de Dados MySQL.
Veja abaixo:
int instancia;
instancia = conecta();
if (instancia>0) {
#define TAMANHO_QUERY 1024
char instrucao[TAMANHO_QUERY];
// concatena a string com os campos preenchidos
sprintf(instrucao, "INSERT INTO materia_prima (chave, descricao, percentual, \
unidade_medida, quantidade, \
preco_unitario, preco_total, estoque) \
VALUES ('%s', '%s', '%s', '%s', '%i', '%s', '%s', '%i')", \
chave, descricao, s_percentual, medida, quantidade, \
s_preco_unitario, s_preco_total, estoque);
return;
}
Pronto!