Я мог бы пропустить что-то действительно важное, но я не могу понять, и мой учитель тоже не знает.Я читаю char (y / n) как ответ ввода с консоли, много раз, (я знаю о вещах "% c".) Мне удается читать как 3-4 "y" -s, но после этого происходит сбой, выглядиткак NULL, а затем прекрасно управляет остальными.
Функции: scanf для чтения консоли fprintf для записи в файл
Несмотря на то, что я пробовал много способов, каждый раз, когда одна из моих переменных не может содержатьнастоящий персонаж.Когда я печатаю элемент struct один за другим, он каждый раз выходит из строя.Когда я пытаюсь прочитать ту самую переменную структуры, она печатает испорченный ответ y.Я также включу код, я ввожу как: адрес: asdf (независимо от того, что на самом деле) размер: 0 остальные из них у, кроме самого последнего.Раньше я нажимал 2020.
Фактическое чтение:
struct s_orders order;
printf("Address: ");
scanf(" %s", order.address);
printf("Size of fields(m^2): ");
scanf(" %d", &order.size);
printf("Paint ordered?(y/n): ");
scanf(" %c", &order.paint);
printf("Revert ordered?(y/n): ");
scanf(" %c", &order.revet);
printf("Water-gas ordered?(y/n): ");
scanf(" %c", &order.proba);
printf("Kitchen creation ordered?(y/n): ");
scanf(" %c", &order.uniq);
printf("Uphol ordered?(y/n): ");
scanf(" %c", &order.uphol);
printf("Expiration date: ");
scanf(" %s", order.date);
struct:
struct s_orders
{
/* data */
char address[100];
int size;
char paint;
char revet;
char proba;
char water;
char uniq;
char uphol;
char date[100];
};
Ожидаемый результат: "asdf; 0; y; y; y; y; y; y; y; 2020; "
Получено:" asdf; 0; y; y; y; (случайный символ здесь); y; y; 2020; "
Редактировать: - IЯ просто плохо фокусируюсь, я забыл попросить ввести переменную воды.Спасибо за помощь!