Считывание строки с пробелами - C (СИ)
Формулировка задачи:
Пишу небольшую эмуляцию БД. Пользователь вводит с клавиатуры название и тип товара цену колво наличие. Для ввода строк использую Ввод производится функцией inputElem. При первом вызове всё работает отлично, но при повторном вызове почему то пропускает ввод первой строки name и стразу запрашивает ввод второй. При этом в name записывается пустая строка. В чем дело подскажите?
Прикрепляю скрин и кусок кода
char name[100];gets_s(name,99);
void inputElem(char* name, char* type, int* count, float* price, bool* isinshop){ printf("Введите название товара - "); fflush(stdin); gets_s(name, 99); printf("Введите тип товара - "); fflush(stdin); gets_s(type, 49); printf("Введите колво товара - "); scanf("%i", count); printf("Введите цену товара - "); scanf("%f", price); int tmp; printf("Введите наличие товара(0-нет,1-есть) - "); scanf("%i", &tmp); if (tmp == 0) *isinshop = false; else *isinshop = true; int main() { SetConsoleCP(1251); SetConsoleOutputCP(1251); product *head = NULL; char name_tmp[100]; char type_tmp[50]; int count_tmp; float price_tmp; bool isinshop_tmp; inputElem(name_tmp, type_tmp, &count_tmp, &price_tmp, &isinshop_tmp); head = addElem(head,name_tmp, type_tmp, count_tmp, isinshop_tmp, price_tmp); inputElem(name_tmp, type_tmp, &count_tmp, &price_tmp, &isinshop_tmp); addElem(head, name_tmp, type_tmp, count_tmp, isinshop_tmp, price_tmp); inputElem(name_tmp, type_tmp, &count_tmp, &price_tmp, &isinshop_tmp); addElem(head, name_tmp, type_tmp, count_tmp, isinshop_tmp, price_tmp); printProduct(head); printf("===========================================\n"); }
Решение задачи: «Считывание строки с пробелами»
textual
Листинг программы
fgets(name,99,stdin)
Объяснение кода листинга программы
- Вводится строка
name
в память компьютера - Размер строки
name
составляет 99 символов - Источник данных для чтения строки - стандартный ввод
stdin
- Используется функция
fgets
для считывания строки - После считывания строки, она сохраняется в переменной
name
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д