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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.11.2010, 23:35   #1
SrgGld
Пользователь
 
Аватар для SrgGld
 
Регистрация: 23.10.2010
Сообщений: 17
Смущение Указатель на массив указателей на массив char'ов...

Задача: считать из файла строки с минимальными затратами памяти в массив строк и вывести его на экран.

Алгоритм: считываю потоком посимвольно, формирую строку, динамически удлинняя массив символов по мере необходимости, потом аналогично с количеством строк в массиве. Должен получиться указатель на массив указателей на массив char'ов.

Проблема: решена, отбой. Извиняюсь за ещё одну глупую тему, созданую мной.

Код:
#include "stdafx.h"
#include <iostream>
#include "stdio.h"
#include <fstream>
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
	setlocale(LC_CTYPE, ""); //установка кодировки для корректного отображения кириллицы в консоли
	ifstream fin("in.txt");
	int lMasStr=0;
	char c,*s=NULL,*t=NULL, **str=NULL, **tStr=NULL;
	while (!fin.eof()) {
		//подготовка строки:
		int l=1; //l - колическтво элементов в массиве S
		s=new char[l];
		s[0]='\0';
		for (int i=0; (fin.get(c))&&(c!='\n'); i++) {
			if (i+2>l) {
				t=new char[++l];
				for (int j=0;j<l-2;j++)	t[j]=s[j];
				delete [] s;
				s=t;
				t=NULL;
			}
			s[i]=c;
		}
		s[--l]='\0'; //строка считана

		if (s[0]!='\0') {
			lMasStr++; //количество строк в массиве
			if (lMasStr>1) {
				tStr=new char *[lMasStr];
				for (int j=0;j<lMasStr-1;j++)	tStr[j]=str[j];
				delete [] str;
				str=tStr;
				tStr=NULL;
			} else str= new char *[1];
			str[lMasStr-1]=s;
		}
	}
	for (int i=0; i<lMasStr; i++) cout<<str[i];
	return 0;
}

Последний раз редактировалось SrgGld; 20.11.2010 в 01:36. Причина: Проблема рассосалась.
SrgGld вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Массив указателей askar Общие вопросы C/C++ 5 07.09.2010 23:11
Указатель на массив указателей, и т.д. Bernarditto Общие вопросы C/C++ 1 09.07.2010 12:26
массив указателей RUSt88 Общие вопросы C/C++ 12 10.01.2010 11:11
массив указателей в С ++ серг Помощь студентам 1 14.12.2009 18:49
Массив указателей (паскаль) diliana Помощь студентам 19 14.11.2009 11:53