Tesla4o
@Tesla4o
Без пользы жизнь - безвременная смерть... В. Гете

Как сделать выход из цикла ввода в массив string?

Помогите сделать выход из цикла ввода строк в массив. Допустим если длинна массива 200, а мне надо ввести только 5 ячеек, как прервать его? break не помогает или я не правильно что то делаю.
вот сам код

#include <iostream>
#include <windows.h>
#include <string>
#include <vector>


using namespace std;

#define SIZE_VEC 5

class Summ
{
public:
	void setSumm();
	void getSumm();
private:
	string *name = new string[SIZE_VEC];  //---надо сделать изменяемый размер массива
	//vector<string> name;
};

void Summ::setSumm()
{
	for (int i = 0; i < SIZE_VEC; ++i)
	{
		char en{ 'e' };         //
		if (i == en)            //------>Эта срань не работает
			break;              //
		cout << i + 1 << " - ";
		getline(cin, name[i]);
		
	}
}

void Summ::getSumm()
{
	for (int j = 0; j < SIZE_VEC; ++j)
	{
		cout << "Введите цену на " << name[j] <<": "; 
		float cost; 
		cin >> cost;
		cout << name[j] << " - " << cost << endl;
	}
}

int main()
{
	SetConsoleCP(1251);
	SetConsoleOutputCP(1251);

	Summ sum;
	sum.setSumm();
	sum.getSumm();

	system("pause");
	return 0;
}
  • Вопрос задан
  • 109 просмотров
Решения вопроса 1
@Codebaker
Всё умею, всё могу!
Оператором getline(cin, name[i]);
вы считываете строку от пользователя в i-тый элемент массива name.
А для выхода используете if (i == en), очевидно, что надо сравнивать так: if (0 == name[i].compare(en))
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы