Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.10.2016, 01:02   #1
zaira001002
Форумчанин
 
Аватар для zaira001002
 
Регистрация: 13.09.2012
Сообщений: 122
По умолчанию Считывание строки (Си)

У меня не дает возможность ввести NUM_2, сразу идет дальше...почему?? Вроде использую gets() правильно.. В чем проблема?
Код:
int main (void)
{
    char Num_1[31], Num_2[41];	          // числа 1, 2
    int n, l;//, i;
      // ввод чисел
    printf("Input the first number:\n                              <-30\n");
    scanf("%s", Num_1);
    n = Take_Number1(Num_1, &Num_Sign, &Num_L);
    if (n == UN_RIGHT_SINTAKSIS)
    {
        printf("\nError 1: Incorrect input.\n");
        system("pause");
        return 0;
    }
    else
        if (n == ZERO)
        {
            printf("Input the second number:\n                              <-30\n");
            gets(Num_2);
            n = Take_Number2 (Num_2, &Man_Sign, &Por_Sign, &Num_L, &Man_L, Man, Por,&Por_L);
            if (n == UN_RIGHT_SINTAKSIS)
            {
                printf("\nError 1: Incorrect input.\n");
                system("pause");
                return 0;
            }
            printf("The result of dividing is: 0.00000000000000000000000000000 E +00000");
            system("pause");
            return 0;
        }
        else
        {
            printf("Input the second number:\n                              <-30\n");
           gets(Num_2);
            l = Take_Number2 (Num_2, &Man_Sign, &Por_Sign,&Num_L, &Man_L, Man, Por,&Por_L);
            if (l == UN_RIGHT_SINTAKSIS)
            {
                printf("\nError 1: Incorrect input.\n");
                printf("%s", Num_2);
                system("pause");
                return 0;
            }
            else
                if (l == ZERO)
                {
                    printf("Input the second number:\n                              <-30\n");
                    printf("%s", Num_2);
                    printf("On 0 can't divide!");
                    system("pause");
                    return 0;
                }
                else
                {
                    printf("Input the second number:\n                              <-30\n");
                    printf("%s", Num_2);
                    printf("The result of dividing is:%s", Result);
                    system("pause");
                }

        }
}
zaira001002 вне форума Ответить с цитированием
Старый 05.10.2016, 01:19   #2
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Ты столкнулась с так называемым "переполнение строкового буфера". Достаточно распространённый недочёт. Лечение так:

133.jpg

Последний раз редактировалось ura_111; 05.10.2016 в 01:23.
ura_111 вне форума Ответить с цитированием
Старый 05.10.2016, 01:46   #3
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Добавлю немного.
Я немного не уверенно держусь в Си (знаю его хуже), но если говорить о С++, тогда там есть специальная функция:

Код:
 cin.ignore();
Подробности:

134.jpg

Скорей всего, этот недочёт перекочевал из си в С++ и понимать ошибку нужно также (только решение в Си другое).

Последний раз редактировалось ura_111; 05.10.2016 в 01:48.
ura_111 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Считывание символов из строки в С# alik98 Помощь студентам 2 07.03.2013 22:42
считывание строки из файла kibcat Общие вопросы C/C++ 2 17.05.2012 10:46
Считывание строки Blad47 Помощь студентам 1 07.04.2011 20:31
Считывание строки с клавиатуры С++ Влюблённая в мечту Помощь студентам 12 01.04.2011 20:44
Считывание строки из файла до символа Stormzcooler Общие вопросы Delphi 7 18.12.2006 15:01