Найти ошибку в коде программы, нарушающая работу функции
Помогите пожалуйста разобраться с проблемой. Имеется небольшое консольное меню написанное на цикле do while, при нажатии на 1 вызывается функция add_string, которая должна считывать строку от пользователя и заносить в массив. Проблема заключается в том что после вызова этой функции её перекрывает другая функция print_menu.
#include <stdio.h>
#include <stdlib.h>
void add_string(char* userText) {
printf("Введите строку и нажмите Enter\n");
fgets(userText, 200, stdin);
puts(userText);
}
void print_menu()
{
printf("\t Управление программой\n");
printf("1 - Для ввода текста\n");
printf("2 - Для записи введенного текста в файл\n");
printf("3 - Для выхода из программы\n");
printf(">");
}
int main()
{
setlocale(0, "rus");
char userText[200] = "";
int controlSybol = 0;
do
{
print_menu();
scanf("%d", &controlSybol);
switch (controlSybol)
{
case 1:
add_string(userText);
break;
case 2:
break;
default:
break;
}
} while (controlSybol != 3);
return 0;
}
Источник: Stack Overflow на русском