0
I’m passing a struct by reference to a function when entering the data, and again when printing this data. However the "Insert element" function does not read the time float (it skips the reading), and the "Print data" function does not print the strings on the screen only 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);
}