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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.10.2011, 23:23   #1
andrei100
 
Регистрация: 26.09.2011
Сообщений: 4
По умолчанию конец строки

Дан один текстовый файл:
1я строка) 1 2 3.1 4 5 6
2я строка) 4 6.6 7 4
3я строка) 0.5 43

Нужно с каждой строки ввести данные в 3 массива
т.е для A[i] 1я строка, для B[i] 2я, для C[i] 3я
массивы динамические и размерность задается не с клавиатуры,
а по кол-ву эл-тов на каждой строке.
...
int n;
double k;
char text[6];
cout<<"Введите имя файла:";
cin>>text;
ifstream in(text);
if (!in)
{
cout<<"Файл не открыт!";
_getch();
return;
}
while (!in.eof())
{
in>>k;
if (!in.fail()) n++;
//может что-то сюда добавить или как то по другому написать
// подсчет кол-ва элементов в файле
}
double *A=new double[n];
заранее спасибо

Последний раз редактировалось andrei100; 06.10.2011 в 00:28.
andrei100 вне форума Ответить с цитированием
Старый 06.10.2011, 00:37   #2
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

andrei100

[i]Нужно с каждой строки ввести данные в 3 массива
т.е для A[i] 1я строка, для B[i] 2я, для C
массивы динамические и размерность задается не с клавиатуры,
а по кол-ву эл-тов на каждой строке


Код:
#include <iostream>
#include <locale>

#include <vector>
#include <string>
#include <fstream>
#include <sstream>
#include <iterator>
#include <algorithm>

typedef std::vector<float> V;
typedef std::vector<V> VV;

namespace std {

std::ostream& operator<< (std::ostream& os, const V& v)
{
	typedef std::ostream_iterator<V::value_type> O;
	std::copy(v.begin(), v.end(), O(os, "\t"));

	return os;
}

std::ostream& operator<< (std::ostream& os, const VV& vv)
{
	typedef std::ostream_iterator<VV::value_type> O;
	std::copy(vv.begin(), vv.end(), O(os, "\n"));

	return os;
}

}

int main()
{
	setlocale(LC_ALL, "");

	std::ifstream ifs("numbers.txt");

	VV vv;

	std::string s;
	while (std::getline(ifs, s))
	{
		if (s.size() == 0)
			continue;

		std::stringstream ss(s);

		typedef std::istream_iterator<V::value_type> I;
		
		V v;
		std::copy(I(ss), I(), std::back_inserter(v));

		vv.push_back(v);
	}

	std::cout << vv;

	return 0;
}
вывод программы:

Код:
1       2       3.1     4       5       6
4       6.6     7       4
0.5     43
Rififi вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
'\0' конец строки rowlin Общие вопросы C/C++ 12 04.06.2011 18:12
Найти конец строки или символ Blourid Общие вопросы .NET 2 17.12.2010 01:09
Дописать строки в конец *.ini Shouldercannon Общие вопросы Delphi 10 12.01.2010 14:30
как добавить строку в конец строки Damhurz PHP 4 16.04.2009 14:35
Поставить курсор в конец строки в TEdit Никки Общие вопросы Delphi 2 17.03.2008 00:27