Функция scanf% s не работает с пробелами - PullRequest
0 голосов
/ 17 апреля 2020

Я сейчас пытаюсь написать программу шифрования. Мне удалось заставить все работать хорошо, однако, как только я предложу пользователю ввести текст, который он хочет зашифровать, мой код не позволит ему вставить строку с пробелами. Я экспериментировал с функциями gets () и scanf ("% [^ \ n] s", ***), но это привело к худшим результатам.

Помощь будет высоко ценится, поскольку я не могу найти решение, которое работает для меня.

Ниже приведен раздел кода, с которым у меня возникли проблемы. Если это поможет, я могу опубликовать весь код. (Извините, если он отформатирован неправильно)

    //selecting an menu option
DisplayDetails();
int OptionSelect = 5;
while (OptionSelect == 5) {
    OptionSelect = get_menu_choice();
    if (OptionSelect == 1) {
        char OriginalText[126];
        printf("Please enter string to encrypt: ");
        scanf("%s", OriginalText);
        //gets(OriginalText,126,stdin); - This did not work
        //scanf ("%[^\n]s", OriginalText); - This did also not work

        //Ask the user for the text they want to encrypt and store it in the "OriginalText" Variable

        int offset = Get_offset();
        Encryption(OriginalText, offset);
        printf("\n");
        OptionSelect = 5;
...