Ajuda com esse algoritmo aqui :) [RESOLVIDO]

1. Ajuda com esse algoritmo aqui :) [RESOLVIDO]

Jeffersson
blow5

(usa Ubuntu)

Enviado em 21/09/2014 - 21:58h

Bom galera é o seguinte,meu professor pediu um algoritmo que inserisse dados no mysql via C,ate ai tudo bem,ai esta o algoritmo q construí ate agora.
#include <stdio.h>
#include <mysql.h>
#include<locale.h>
#include<stdlib.h>

main()
{
//Query para inserção//
char* query[100];
//Unica Query///
//Variavel para teste de inserção//
int res;
////////////////////////////////
//Opções switch/case //
int opcao;
int op;

//Inicio das variaveis da tabela candidato//
char nome_candidato[55];
char endereco_candidato[255];
char escolaridade_candidato[125];
char email_candidato[105];
char sexo_candidato;
int idade_candidato;
int telefone_candidato;
int cpf_candidato;
int data_nascimento_candidato;
//Fim das variaveis da tabela candidato//

//Inicio das variaveis da tabela edital//
char instituicao_edital[40];
int data_abertura_edital;
int data_encerramento_edital;
char cargos_edital[25];
int data_prova_edital;
char informacoes_edital[255];
//Fim das variaveis da tabela edital//

//Inicio das variaveis da tabela cargos//
char cargo_cargos[25];
char exigencias_cargos[65];
char hora_trabalho_cargos[25];
char turno_cargos[15];
int quantidade_vagas_cargos;
float remuneracao_cargos;
//Fim das variaveis da tabela cargos//

setlocale(LC_ALL,"portuguese");


MYSQL conexao;

mysql_init(&conexao);
if ( mysql_real_connect(&conexao, "localhost", "root", "", "concurso", 0, NULL, 0) )
{
printf("Você esta conectado com o Mysql!\n");

mysql_close(&conexao);
}
else
{
printf("Falha de conexao\n");
printf("Erro %d : %s\n", mysql_errno(&conexao), mysql_error(&conexao));
}
printf("Escolha sua opção:\n");
printf("[1] para candidato;\n");
printf("[2] para edital;\n");
printf("[3] para cargos;\n");
printf("[4] para sair a qualquer momento.\n");
scanf("%d",&opcao);
switch(opcao){
case 1:printf("Escolha sua opção:\n");
printf("[1] para inserir dados;\n");
printf("[2] para sair\n");
scanf("%d",&op);

switch(op){
case 1:
printf("Qual o nome do candidato?\n");
scanf("%[^\n]",nome_candidato);
printf("Qual o cpf do individuo(apenas numeros,sem traços)?\n");
scanf("%d",&cpf_candidato);
printf("Qual endereço?\n");
scanf("%255[^\n]s",endereco_candidato);
printf("Qual o sexo?\n");
printf("M ou F\n");
scanf(" %c",&sexo_candidato);
printf("Qual sua escolaridade:\n");
printf("ex:\n");
printf("Ensino medio incompleto,completo...\n");
scanf("%125[^\n]s",escolaridade_candidato);
printf("Qual seu telefone(sem traços,nem separador)?\n");
scanf("%d",&telefone_candidato);
printf("Qual seu e-mail?\n");
printf("Essa informação não é obrigatoria,caso não tenha,informe\n");
scanf("%105[^\n]s",email_candidato);
printf("Qual sua data de nascimento?\n");
printf("por favor utilize apenas numeros e na sequencia[AAAAMMDD]\n");
scanf("%d",&data_nascimento_candidato);
break;
case 2:printf("Encerrado\n");
break;
default:printf("Isso não é opção seu cavalo manco!!\n");
break;
}
break;
case 2:printf("Escolha sua opção:\n");
printf("[1] para inserir dados;\n");
printf("[2] para sair\n");
scanf("%d",&op);

switch(op){
case 1: printf("Qual instituição?\n");
scanf("%s",instituicao_edital);
printf("Qual data de abertura das inscrições(não utilize separadoress,apenas numeros\n");
printf("No estilo AAAAMMDD\n");
scanf("%d",&data_abertura_edital);
printf("Qual a data de encerramento? siga o mesmo exemplo da questão anterior\n");
scanf("%d",&data_encerramento_edital);
printf("Qual o cargo pretendido\n");
scanf("%s",cargos_edital);
printf("Qual o data da prova(segue mesmo esquemas das outras datas)?\n");
scanf("%d",&data_prova_edital);
printf("Informações adicionais a serem inseridas?\n");
printf("Não é obrigatorio esse campo\n");
scanf("%s",informacoes_edital);
break;
case 2:printf("Encerrado\n");
break;
default:printf("Isso não é opção seu cavalo manco!!\n");
break;
}
break;
case 3:printf("Escolha sua opção:\n");
printf("[1] para inserir dados;\n");
printf("[2] para sair\n");
scanf("%d",&op);
switch(op){
case 1:printf("Nome do cargo?\n");
scanf("%s",cargo_cargos);
printf("Quais as exigencias para esse cargo?\n");
scanf("%s",exigencias_cargos);
printf("Qual o valor da remuneção?(numeros com virgula,sem simbolos)ex:725.00\n");
scanf("%f",remuneracao_cargos);
printf("Quantas horas de trabalho?\n");
printf("Ex: 80 horas semanais\n");
scanf("%s",hora_trabalho_cargos);
printf("Qual o turno do cargo?\n");
scanf("%s",turno_cargos);
printf("Quantas vagas do cargo mencionado?\n");
printf("Apenas numeros,ex:5\n");
scanf("%d",&quantidade_vagas_cargos);
break;
case 2: printf("Encerrado!\n");
break;
default:printf("Isso não é opção seu ET\n");
break;
}
break;
case 4:printf("Encerrado!\n");
break;
default:printf("Isso não é opção zoobomafoo!!!\n");
break;
}
sprintf(query,"INSERT INTO candidato (nome,cpf,endereco,sexo,escolaridade,telefone,email,dt_nascimento) values ('%s','%d','%s',' %c','%s','%d','%s','%d');", nome_candidato,cpf_candidato,endereco_candidato,sexo_candidato,escolaridade_candidato,telefone_candidato,email_candidato,data_nascimento_candidato);
res = mysql_query(&conexao,query);
if (!res) printf("Registros inseridos %d\n", mysql_affected_rows(&conexao));
else printf("Erro na inserção %d : %s\n", mysql_errno(&conexao), mysql_error(&conexao));
}
O problema acontece quando chega para armazenar os dados na variavel nome_candidato(na vdd todas as q estão como strings da esse problema),ele simplesmente pula,como resolvo isso?
ja olhei esses tutorias aqui:
http://www.vivaolinux.com.br/topico/C-C++/Conexao-com-banco-de-dados-1
http://www.vivaolinux.com.br/artigo/Usando-MySQL-na-linguagem-C?pagina=2
Mas n tive resposta :\
Atenciosamente.


  


2. MELHOR RESPOSTA

Samuel Leonardo
SamL

(usa XUbuntu)

Enviado em 21/09/2014 - 22:28h

Deve ser problema com caracteres no buffer de entrada. Tente limpar o buffer antes de ler com scanf.

3. Re: Ajuda com esse algoritmo aqui :) [RESOLVIDO]

Jeffersson
blow5

(usa Ubuntu)

Enviado em 22/09/2014 - 00:39h

Bom resolvi isso,agora da outro problema na parte de inserção de dados ._.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts