Я работаю над своим заданием, и я столкнулся с этой проблемой. В присваивании говорится, что входное значение для средних инициалов должно быть таким - «Л. А.». Однако, когда я запускаю свою программу, она печатает некоторые функции printf в той же строке, пропуская функцию scanf. Я прошел много тем об этой проблеме "% c", но я все еще не могу заставить мою программу работать должным образом. Некоторые из переменных взяты из файла .h. Фактическое задание больше, но оно в значительной степени повторяется, поэтому я подумал, что если я пойму, как решить эту проблему, я смогу наконец закончить свое задание.
int main(void){
// Declare variables here:
char ch;
struct Name FullName = { {'\0'} };
struct Address AddressInfo = { 0, '\0', 0, '\0', '\0' };
struct Numbers PhoneInfo = { {'\0'} };
// Display the title
printf("Contact Management System\n");
printf("-------------------------\n");
// Contact Name Input:
printf("Please enter the contact’s first name: ");
scanf("%s", &FullName.firstName);
printf("Do you want to enter a middle initial(s)? (y or n): ");
scanf(" %c", &ch);
if (ch == 'y') {
printf("Please enter the contact’s middle initial(s): ");
scanf(" %s", FullName.middleInitial);
}
printf("Please enter the contact’s last name: ");
scanf(" %s", &FullName.lastName);
// Contact Address Input:
printf("Please enter the contact’s street number: ");
scanf("%d", &AddressInfo.streetNumber);
ВЫХОД (Я выделил входные значения):
Contact Management System
-------------------------
Please enter the contactÆs first name: *Artem*
Do you want to enter a middle initial(s)? (y or n): *y*
Please enter the contactÆs middle initial(s): *L. A.*
Please enter the contactÆs last name: Please enter the contactÆs street number: