I'm passing a struct by reference to a function at the time of inserting the data, and again at the time of printing this data. But the "insert_element" function does not read the time float (it skips the reading), and the function "Print_dates" does not print the strings on the screen just the ints and floats.
#include<stdio.h>
#include<stdlib.h>
typedef struct pessoa{
char *nome;
int idade;
float salario;
char *cargo;
float tempo;
} PESSOA;
void Insere_elemento(PESSOA*dados);
void Imprime_dados(PESSOA*dados);
int main ()
{
PESSOA dados;
Insere_elemento(&dados);
Imprime_dados(&dados);
return 0;
}
void Insere_elemento(PESSOA*dados)
{
char aux_nome[20];
char aux_cargo[20];
scanf("%[^\n]", aux_nome);
dados->nome=aux_nome;
__fpurge(stdin);
scanf("%d", &dados->idade);
scanf("%f", &dados->salario);
scanf("%[^\n]", aux_cargo);
dados->cargo=aux_cargo;
__fpurge(stdin);
scanf("%f", &dados->tempo);
}
void Imprime_dados(PESSOA*dados)
{
printf("%s \n", dados->nome);
printf("%d \n", dados->idade);
printf("%2.f \n", dados->salario);
printf("%s \n", dados->cargo);
printf("%2.f \n", dados->tempo);
}