Хорошо, у меня есть программа, которая считывает контактную информацию из пользовательского ввода, вот функция, которая получает имена контактов.
// getName:
void getName(struct Name* name)
{
//First name
printf("Please enter the contact’s first name: ");
scanf("%[^\n]31s", name->firstName);
clearKeyboard();
//Middle Name
printf("Do you want to enter a middle initial(s)? (y or n): ");
if (yes()) {
printf("Please enter the contact’s middle initial(s): ");
scanf("%[^\n]7s", name->middleInitial);
}
clearKeyboard();
//Last Name
printf("Please enter the contact’s last name: ");
scanf("%[^\n]36s", name->lastName);
clearKeyboard();
}
После получения информации о контакте я отображаю информацию и что-то не кажется правильным.
Что ожидается
Name: Tom See John|How Wo|Song Sing
Что выводится
Name: Tom See John|How Won|Song Sing Song Sing
и вот объявления для этой структуры имени также.
// Structure type Name declaration
struct Name {
char firstName[31];
char middleInitial[7];
char lastName[36];
};
Я предполагаю, что мой синтаксис scanf неверен, в результате чего scanf не помещает разделитель в конец строки middleInitial, что приводит к некоторой ошибке, из-за которой lastName печатается дважды.
I ' В течение последнего дня я возился с этим кодом, не могу понять ...
Я новичок в c программировании, и любая помощь или критика приветствуются, я открыт для всего!