2014 dxdy logo

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

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




 
 do{}while(); почему дублируется ввод getchar? (понял )
Сообщение24.12.2018, 11:46 
Аватара пользователя
Наваял ученический код
Код:
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 
Вы б хотя бы написали, какой язык.

 
 
 
 Re: do{}while(); почему дублируется ввод getchar? (понял )
Сообщение24.12.2018, 14:41 
Аватара пользователя
Понятно, что это Си, и понятно, что автор никак не обрабатывал '\n'.
Ну и ладно, если он доволен тем, как у него чудесным образом теперь всё работает, то и я за него рад.

 
 
 [ Сообщений: 3 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group