Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Galera to tentando fazer um exercício pra faculdade, comecei a pensar como iria fazer mas o programa já ta com problema, a função inserir não lê o ultimo campo, que eh salário, não tenho nem ideia do porquê. o enunciado do exercício é esse:
Escreva um programa em C que manipule um vetor de registros (estruturas) com dados de10 trabalhadores de uma empresa, conforme a estrutura a seguir:
int id;
char nome[30];
char sexo;
float salario;
O programa deve ter as seguintes funções:
-
Meu código por enquanto:
#include <stdio.h>
void inserir();
typedef struct trabdados{
int id;
char nome[30];
char sexo;
float salario;
}trabdata;
main(){
trabdata vetor[10];
inserir(vetor);
printf("%d\n",vetor[0].id);
return 0;
} int i=0;
scanf("%d", &vetor[i].id);
scanf("%s", vetor[i].nome);
scanf("%c", &vetor[i].sexo);
scanf("%f", &vetor[i].salario);
}um getchar sozinho ?? como assim ??
scanf("%d", &vetor[i].id);
scanf("%s", vetor[i].nome);
getchar();
scanf("%c", &vetor[i].sexo);
scanf("%f", &vetor[i].salario);funcionou.. queria saber o pq... pode dizer ?
Problema de buffer, as vezes o buffer fica "sujo" ai ele pega a resposta de alguma das outras e coloca na ultima sozinho, sempre que voce usar strings ou caracteres com scanf é bom usar getchar()
temos um tópico específico, falando sobre essa sujeira de buffer.
[]s
coloca um getchar entre o scanf da string e do caracter.