Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.10.2010, 06:18   #1
pabloEscobar
Новичок
Джуниор
 
Аватар для pabloEscobar
 
Регистрация: 23.10.2010
Сообщений: 1
По умолчанию Непонятная ошибка в коде

Здравствуйте, я еще совсем уж начинающий программист и сейчас изучаю С++(заранее прошу прощения, но меня интересует вопрос: как происносится C++? Например С по-русски выговаривается как Си. Я знаю, что в одной теме можно задавать только один вопрос, но ведь ответ состоит всего из одного слова)

Собственно проблема. Сегодня решил попрактиковаться с векторами и строками и встретил несколько странную ошибку(место ошибки указано в листинге):

Код:
#include <iostream>
#include <string>
#include <vector>

using std::vector;
using std::string;
using std::cin;
using std::cout;
using std::endl;

int main ()
{	
	/*Программа
	- считать данные с устройства ввода в переменную
	  типа string без использования функции getline()
	- кажное новое значение переменной записывать в вектор
	  (при помощи цикла while)
	- выход из цикла осушествить с помощью сравнения данной
	  переменной с переменной, котороя содержит ключевое
	  слово (при совпадении значений переменных завершить
	  цикл)
	- при помощи цикла for организовать вывод элементов
	  вектора на стандартное устройство вывода по 8
	  элементов в одной строке (при помощи оператора if)

	v 0.2
	- после вывода запросить номера слов, которые необходимо
	  заменить
	- сохранить эти номера в векторе
	- поочередно считывать эти номера из элементов вектора
	  и изменять элемент из вектора строк, соответствующий
	  номеру
	 - считывание элемента из вектора и передача его значения
	   оператору индексирования вектора строк
	 - считывание данных с устройства ввода и запись из в
	   элемент, на который указывает итератор
	- после замены всех слов вывести содержание вектора 
	  строк заново*/

	string word;
	cout << "Enter the words:" << endl;
	string keyword ("qqq");
	vector<string> wordVec;
     while (cin >> word && word != keyword)
	{
		wordVec.push_back(word);
	}
	short val = 0;
	for (vector<string>::iterator i = wordVec.begin(); i!= wordVec.end(); ++i)
	{
		cout << *i << " ";
		++val;
		if (val == 8)
		{
			cout << endl;
			val = 0;
		}
	}
	if (wordVec.size() % 8 != 0)
	{
		cout << endl;
	}
	// v 0.2

//НАЧИНАЕМ С ЭТОГО МЕСТА(описание проблемы приведено после листинга)

	cout << "Enter the numbers:" << endl;
	int number, knum = 01;
	vector<int> numVec;
	while (cin >> number && number != knum)
	{
		numVec.push_back(number);
	}
	for (vector<int>::iterator i = numVec.begin(); i != numVec.end(); i++)
	{
		cout << *i << " is " << wordVec[*i - 1]
			<< ". Change to: ";
		cin >> word;
		cout << endl;
		wordVec[*i - 1] = word;
	}
	//Вывод нового содержимого
	//Обнуление переменной val, которая отвечает за
	//переход на новую строку
	val = 0;
	for (vector<string>::iterator i = wordVec.begin(); i!= wordVec.end(); ++i)
	{
		cout << *i << " ";
		++val;
		if (val == 8)
		{
			cout << endl;
			val = 0;
		}
	}
	if (wordVec.size() % 8 != 0)
	{
		cout << endl;
	}
	return 0;
}
Изначально код не содержал переменную knum и собственно условием цикла while был ввод переменной целочисленного типа. В результате в идущем следом цикле for не работала строка
Код:
cin >> word;
(то есть при выполнении программы этапа ввода просто не было)хотя сам цикл выполнялся и вывод происходил успешно. То есть эта строка выполняется только при "человеческом" завершении цикла while(до введения knum я просто вводил букву, чтобы выйти из цикла).
Собственно вопрос: какая здесь может быть связь(ладно бы весь цикл не выполнялся, а то именно эта строка)?
Что для вас дороже: потратить 100$ на безделушку или 1 час времени на дурацкие развлечения?
pabloEscobar вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Непонятная ошибка Vladya Помощь студентам 0 08.05.2010 13:52
(СИ)непонятная ошибка. RZMTZM Помощь студентам 7 04.02.2010 02:49
Непонятная ошибка. jojahti Общие вопросы C/C++ 4 05.09.2009 20:39
Непонятная ошибка RealSHELS Общие вопросы Delphi 16 24.10.2008 20:49
Непонятная ошибка Slash Общие вопросы Delphi 6 19.06.2007 14:45