2
I have a vector of structs with 10 people and I want my registration function to receive only one person at a time.
In the terminal, the register of the first person is made correctly but then I get this "break" line, jumps alone from the name I would type to the age. Why this occurs?
[danielamorais@localhost Desktop]$ ./ex3
Digite o nome:
Daniela
Digite a idade:
18
Digite o nome:
Digite a idade:
Code
#include <stdio.h>
#include <stdlib.h>
#define TAM 10
typedef struct{
char nome[30];
int idade;
} Pessoa;
void cadastrarPessoa(Pessoa *pessoa){
puts("Digite o nome:");
gets((*pessoa).nome);
puts("Digite a idade:");
scanf("%d", &((*pessoa).idade));
}
void lerPessoas(Pessoa *p){
for(int i = 0; i < TAM; i++){
cadastrarPessoa(&p[i]);
}
}
void imprimirVetor(Pessoa *p){
for(int i = 0; i < TAM; i++){
printf("Nome: %s", p[i].nome);
printf("Idade: %d", p[i].idade);
}
}
void main(){
Pessoa *pessoa = (Pessoa *)malloc(sizeof(Pessoa) * TAM);
lerPessoas(pessoa);
imprimirVetor(pessoa);
}
Vc is on linux or windows?
– gato
@Denercarvalho Fedora 23
– Daniela Morais