D
diegotorquemada
Hello,
I am wondering why scanf is not reading my data properly:
#include<stdio.h>
// gcc -Wall -std=c99 -o 07_struct 07_struct.c
typedef struct
{
int cod;
char name[50];
char sex;
} person;
int main()
{
int i, n;
printf("How many people = ");
scanf("%d", &n);
person p[n];
for (i=0; i<n; i++)
{
printf("PERSON %d:\n", i+1);
printf("Code = "); scanf("%d", &(p.cod));
printf("Name = "); fgets(p.name, sizeof(p.name), stdin);
printf("Sex M/F = "); scanf("%c", &(p.sex));
printf("\n");
}
puts("\n----------------------------------------------------------------\n");
for (i=0; i<n; i++)
{
printf("PERSON %2d:\n", i+1);
printf("Cod = %d\n", p.cod);
printf("Name = %s\n", p.name);
printf("Sex M/F = %c\n\n", p.sex);
}
return 0;
}
The output of my program is:
diego@earendil:~/programas$ gcc -Wall -std=c99 -o 07_struct 07_struct.c
diego@earendil:~/programas$ ./07_struct
How many people = 3
PERSON 1:
Code = 12
Name = Sex M/F = Andrew
PERSON 2:
Code = Name = Sex M/F = Maria
PERSON 3:
Code = Name = Sex M/F = Robert
----------------------------------------------------------------
PERSON 1:
Cod = 12
Name =
Sex M/F = A
PERSON 2:
Cod = -1208399088
Name = ndrew
Sex M/F = M
PERSON 3:
Cod = -1081416063
Name = aria
Sex M/F = R
can somebody please help me?
Thanks
Diego
I am wondering why scanf is not reading my data properly:
#include<stdio.h>
// gcc -Wall -std=c99 -o 07_struct 07_struct.c
typedef struct
{
int cod;
char name[50];
char sex;
} person;
int main()
{
int i, n;
printf("How many people = ");
scanf("%d", &n);
person p[n];
for (i=0; i<n; i++)
{
printf("PERSON %d:\n", i+1);
printf("Code = "); scanf("%d", &(p.cod));
printf("Name = "); fgets(p.name, sizeof(p.name), stdin);
printf("Sex M/F = "); scanf("%c", &(p.sex));
printf("\n");
}
puts("\n----------------------------------------------------------------\n");
for (i=0; i<n; i++)
{
printf("PERSON %2d:\n", i+1);
printf("Cod = %d\n", p.cod);
printf("Name = %s\n", p.name);
printf("Sex M/F = %c\n\n", p.sex);
}
return 0;
}
The output of my program is:
diego@earendil:~/programas$ gcc -Wall -std=c99 -o 07_struct 07_struct.c
diego@earendil:~/programas$ ./07_struct
How many people = 3
PERSON 1:
Code = 12
Name = Sex M/F = Andrew
PERSON 2:
Code = Name = Sex M/F = Maria
PERSON 3:
Code = Name = Sex M/F = Robert
----------------------------------------------------------------
PERSON 1:
Cod = 12
Name =
Sex M/F = A
PERSON 2:
Cod = -1208399088
Name = ndrew
Sex M/F = M
PERSON 3:
Cod = -1081416063
Name = aria
Sex M/F = R
can somebody please help me?
Thanks
Diego