2014 dxdy logo

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

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




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


05/06/08
297
Наваял ученический код
Код:
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
2397
Аделаида
Вы б хотя бы написали, какой язык.

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


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

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

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



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

Сейчас этот форум просматривают: aa_dav


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

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