2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 do{}while(); почему дублируется ввод getchar? (понял )
Сообщение24.12.2018, 11:46 
Аватара пользователя


05/06/08
477
Наваял ученический код
Код:
char operation;
   do {
      printf("Choose one of the operations:(+),(-),(*),(/) \n");
      operation = getchar();//считываем знак операции с консолинп
      //printf("\n");
      switch (operation) {


      case '+':

         for (int i = 0; i < size; i++)
         {
            f_read1[i] += f_read2[i];

         }
         break;
      case '-':

         for (int i = 0; i < size; i++)
         {
            f_read1[i] -= f_read2[i];

         }
         break;
      case '*':

         for (int i = 0; i < size; i++)
         {
            f_read1[i] *= f_read2[i];

         }
         break;
      case '/':

         for (int i = 0; i < size; i++)
         {
            if (f_read2[i]) f_read1[i] /= f_read2[i];

         }
         break;
      default:
         printf("This operation is not recoghized, try again\n");
         break;
      }
   } while (!(operation == '+' || operation == '-' || operation == '*' || operation == '/'));

В случае невыхода из цикла дублирует ввод
This operation is not recoghized, try again
Choose one of the operations:(+),(-),(*),(/)
This operation is not recoghized, try again
Choose one of the operations:(+),(-),(*),(/)

может это как-то связано с тем, что в этом случае надо использовать что-то иное вместо
Код:
operation = getchar();

Что работало бы без перевода каретки?

-- Пн дек 24, 2018 13:00:18 --

Понял, как обойти.
Просто поставил по дефолту второй
operation = getchar();
Спасибо за внимание. Можно удалить тему.

 Профиль  
                  
 
 Re: do{}while(); почему дублируется ввод getchar? (понял )
Сообщение24.12.2018, 13:52 


21/05/16
4292
Аделаида
Вы б хотя бы написали, какой язык.

 Профиль  
                  
 
 Re: do{}while(); почему дублируется ввод getchar? (понял )
Сообщение24.12.2018, 14:41 
Аватара пользователя


14/12/17
1516
деревня Инет-Кельмында
Понятно, что это Си, и понятно, что автор никак не обрабатывал '\n'.
Ну и ладно, если он доволен тем, как у него чудесным образом теперь всё работает, то и я за него рад.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group