What is the Correct Way to Initialize a Character in C Programming?

Join the discussion
Ask a follow-up here, or get your own question answered by working scientists, mathematicians and engineers — people, not an autocomplete.
Real named experts · corrections over time · the nuance an AI answer skips
2 replies · 2K views
nard
Messages
16
Reaction score
0
the foolowing program is to read inputed data and display them all at once but when i run it it asks for the first information and then runs the total program without asking for the input of other information.after that it doesn't respond and closes immediatelly.
can someone help me and tells me what's wrong with my program?
thanks for your help.

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct database {
char name;
int phone_number,id_numb;
};
main()
{
struct database ident;
printf("enter a name\n");
scanf("%c",&ident.name);
printf("enter a phn numb\n");/* enter a phone number*/
scanf("%d",&ident.phone_number);
printf("enter the id_numb\n");/*enter an id number*/
scanf("%d",&ident.id_numb);
printf("the identity of %s is:\n",ident.name);/*displays the name*/
printf("phone:%d id:%d \n",ident.phone_number,ident.id_numb);/*displays the phone number and the id number*/
system("PAUSE");
}
 
on Phys.org
nard said:
scanf("%c",&ident.name);
the scanf("%c",...) is the issue. This reads a single character into the single character variable name. If you enter more than one character, scanf will attempt to handle those with the following scanf()'s.

Perhaps you'd want to use a string, which will solve the problem:

char name[128];

scanf("%s", ident.name);

printf( "... %s ...", ident.name);
 
I saw where i was making an error.
i corrected and while initialising the character i defined as an array and that way in the printf and scanf functions instead of using %c i used %s.after that the program is compiled and run without complications