1
In that code:
#include <stdio.h>
#include <stdlib.h>
//Usando o struct(Estruturas)
struct cadastro {
char nome[50];
int idade;
char rua[50];
int numero;
};
int main()
{
printf("Digite suas informacaoes:\n");
struct cadastro c;
printf("Digite seu nome:\n");
//Le do teclado uma string e armazena no campo nome
gets(c.nome);
printf("Digite sua idade:\n");
//Le do teclado um valor inteiro e armazena no campo idade
scanf("%d", &c.idade);
printf("Digite o nome da sua rua:\n");
//Le do teclado uma string e armazena no campo rua
gets(c.rua);
printf("Digite o numero da rua:\n");
//Le do teclado um valor inteiro e armazena no campo numero
scanf("%d", &c.numero);
system("cls");
printf("Nome: %s\n", c.nome);
printf("Idade: %d\n", c.idade);
printf("Rua: %s\n", c.rua);
printf("Numero: %d\n", c.numero);
system("pause");
return 0;
}
I can’t type the street name with the scanf, it jumps right to the reading of the int number. In the printf he does not inform the street, I can not solve. I removed the system("cls")(clear the screen) to show.
You can exchange gets(c.rua) for fgets(c.rua, 50, stdin) and test?
– rafaels88
Yeah, looking at your code, I’m not sure if the problem is in the gets(c.rua) or the scanf above. You can test your code without the lines in which you question age? Test with the name question and then the street question, one followed by the other. See what happens.
– rafaels88
Because it is expensive, the problem is not in gets(), but in scanf("%d", &c.age). As if the "enter" that is given at that time of execution affects the execution of gets(). Test this here, please: , instead of scanf("%d", &c.idade), put the two lines: scanf("%d", &c.idade); getc(stdin);
– rafaels88