Имя пользователя:
Пароль:
 

Название темы: Помощь с кодом на С++
Показать сообщение отдельно

Аватара для lxa85

Необычный


Contributor


Сообщения: 4466
Благодарности: 995

Профиль | Сайт | Отправить PM | Цитировать


PHP код: Выделить весь код

int fill_array(double ar[], int limit) {
  
using namespace std;  // так ли оно здесь нужно?
  
double temp;
  
int i;
  for (
0limiti++) {
    
cout << "Enter value # " << (1) << endl;
    
cin >> temp;
    if (!
cin) {
      
cin.clear();
      while (
cin.get() != '\n')
        continue;
      
cout << "Bad input; input process terminated.\n";
      break;
    } else if (
temp 0)
      break;
    
ar[i] = temp;
  } 
//<-- вот сюда ведет брейк
  
return i;


continue - Чтобы быть уверенным где цикл начался, а где закончился - пишите операторные скобки и, пардон, не выпендривайтесь.
Это довольно распространенная ошибка, отформатировать код "на глаз" пропустив скобки, а потом думать о том "что пошло не так"?
В данном случае, т.к. continue относится к while, то он и будет продолжать итерацию в while.
То же самое касается break - он завершает текущую итерацию цикла. Цикл какой? Правильно - счетный for. Его и завершаем.
Цитата arlekon:
Поправте если ошибаюсь: строки while (cin.get() != '\n') continue; - как я понимаю они означают проходку по всем символам "неправильным" которые ввел юзер до символа новой строки (enter?) и стирания с помощью cin.clear()?. »
Не все там так просто
cin.get() и его друзья

----
Я полагаю правильное изучение С++ сложным для новичка. Чтобы вы в дальнейшем не "прострелили себе ногу", посмотрите на другие, более явные что ли, языки программирования. Но это чистое ИМХО разумеется.

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)


Отправлено: 08:25, 07-09-2016 | #2

Название темы: Помощь с кодом на С++