Функция scanf(), не считывает данные - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Вот перед вами кусок кода, это функция которая возвращает true или false
Листинг программы
  1. bool ask(char *text)
  2. {
  3. char choice;
  4. while(1)
  5. {
  6. printf("\n> %s? : ", text);
  7. scanf("%c", &choice);
  8. switch(toupper(choice))
  9. {
  10. case 'Y':
  11. return true;
  12. case 'N':
  13. return false;
  14. default:
  15. printf("\n> Please choose only Y or N\n");
  16. break;
  17. }
  18. }
  19. }
  20. она используеться в другой функции
  21. while(1)
  22. {
  23. printf("\n< Choice : ");
  24. scanf("%c", &choice);
  25. switch(choice)
  26. {
  27. case '1': new_item(i, "item", 0, 5.0, ask("smth"), ask("smth")); break;
  28. case '9': break;
  29. default: printf("\n> Wrong option\n"); break;
  30. }
  31. }
проблема в том, что при запуске 2ой функции, первый шаг в функции ask() считаеться не верным, как бы перескакивает scanf() и в итоге нет подходящего значения в switch() тем самым отображается оповещение что нет такого значение. Либо так как мне нужно 2 раза вызвать эту функцию, считываеться только вторая, я не могу понять почему так происходит. Я пробовал добавить ещё один scanf(), пашет, т.е только для 1 ого метода, а просто так уже использовать, нет, будет 2 запроса) Обьясните )

Решение задачи: «Функция scanf(), не считывает данные»

textual
Листинг программы
  1. char * str = (char *)malloc(sizeof(char));//начальное выделение под 1 символ
  2. str = (char *)realloc((void *)str,NewCharCount*sizeof(char));//Изменяем память по NewCharCount символов

Объяснение кода листинга программы

  1. Объявлена переменная типа char* с именем str, которая изначально указывает на блок памяти размером 1 символ.
  2. Выполняется операция приведения типа (char *)malloc(sizeof(char)), в результате которой выделяется память под 1 символ.
  3. Выполняется операция приведения типа (char *)realloc((void *)str,NewCharCount*sizeof(char)), в результате которой изменяется размер блока памяти, начиная с указателя str, на NewCharCount символов.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы