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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.09.2009, 17:36   #1
Kiragaz
Пользователь
 
Регистрация: 22.08.2009
Сообщений: 11
По умолчанию Динамический массив

Подскажите, плиз, что в этом коде не так, может я что-то не так наваял?
Код:
#include <iostream>
#include <fstream>
#include <string>
using namespace std;

int main(int argc, char* argv[])
{
	ifstream infile("in_file.txt");
	/*string mas[256];
	int i;
	for (i=0; i<256; i++)
		while(infile >> mas[i])
			cout << mas[i] << " ";
	cout << "\n";*/
	string *mas = new string[];
	int i = 0;
	while (infile >> mas[i])
	{
		cout << mas[i] << " ";
		i++;
	}
	if (i > 0)
		cout << "\nRead is executed.\n";
	else
		cout << "\nEmpty file.\n";
	delete[] mas;
	return 0;
}
То, что закоментировано - работает, но это не совсем то, что мне надо, а с динамическим выделением памяти я пока не очень...
Kiragaz вне форума Ответить с цитированием
Старый 29.09.2009, 17:40   #2
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Так а что же надо? Может string* mas = new string[256]; ?
netrino вне форума Ответить с цитированием
Старый 29.09.2009, 17:46   #3
Kiragaz
Пользователь
 
Регистрация: 22.08.2009
Сообщений: 11
По умолчанию

Нет, я не знаю сколько слов быдет в файле in_file.txt, а мне надо, чтоб количество элементов в массиве было равным количеству слов в файле.
Т.е. чтоб While считал все слова из файла и "закончил" массив.

Последний раз редактировалось Kiragaz; 29.09.2009 в 17:51.
Kiragaz вне форума Ответить с цитированием
Старый 29.09.2009, 17:51   #4
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

А, ну тогда можно использовать vector из STL. Он позволяет создавать динамически расширяемые массивы.
netrino вне форума Ответить с цитированием
Старый 29.09.2009, 18:10   #5
Kiragaz
Пользователь
 
Регистрация: 22.08.2009
Сообщений: 11
По умолчанию

Это как-то вот так? Просто, я в STL не разбираюсь.
Код:
#include <vector>

int main ()
{
	//...
	vector *mas = new vector[];
	//...
}
Kiragaz вне форума Ответить с цитированием
Старый 29.09.2009, 18:20   #6
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Вот так, например:
Код:
#include <iostream>
#include <fstream>
#include <string>
#include <vector>

int main(int argc, char* argv[])
{
	std::ifstream infile("in_file.txt");
	std::vector<std::string> mas;
	std::string temp;
	int i = 0;

	while (infile >> temp)
	{
		mas.push_back(temp);
		std::cout << temp << " ";
		i++;
	}
	if (i > 0)
		std::cout << "\nRead is executed.\n";
	else
		std::cout << "\nEmpty file.\n";

	return 0;
}
netrino вне форума Ответить с цитированием
Старый 29.09.2009, 21:02   #7
Kiragaz
Пользователь
 
Регистрация: 22.08.2009
Сообщений: 11
По умолчанию

Спасибо, работает!
Kiragaz вне форума Ответить с цитированием
Старый 29.09.2009, 22:23   #8
Kiragaz
Пользователь
 
Регистрация: 22.08.2009
Сообщений: 11
По умолчанию

У меня еще вопрос возник.
А как обращаться к элементам вектора mas ?
Если я, допустим, хочу вывести на экран один из его элементов или какие-нибудь другие действия...
Kiragaz вне форума Ответить с цитированием
Старый 29.09.2009, 22:30   #9
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Вот небольшой пример:
Код:
#include <iostream>
#include <vector>
#include <string>

int main()
{
	std::vector<std::string> vec;

	vec.push_back("New string");
	vec.push_back("Very new string");
	vec.push_back("Super new string");

	for(int i = 0; i < vec.size(); i++)
		std::cout << vec[i] << std::endl;

	for(std::vector<std::string>::iterator iter = vec.begin(); iter != vec.end(); ++iter)
		std::cout << *iter << std::endl;
	
	return 0;
}
netrino вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
динамический массив Cpluser Общие вопросы C/C++ 1 20.09.2009 18:17
Динамический массив Lemo Помощь студентам 5 16.09.2009 06:26
Динамический массив Ivin Мультимедиа в Delphi 14 27.02.2009 23:22
динамический массив Dimon Паскаль, Turbo Pascal, PascalABC.NET 3 21.03.2008 18:08
динамический массив Diller Помощь студентам 48 07.10.2007 16:43