Форум программистов, компьютерный форум CyberForum.ru

Текст и двумерный массив. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Лаба по Символьной информации http://www.cyberforum.ru/cpp-beginners/thread203668.html
не знаю как решить вот этот вариант,остальные сделал,но этот не знаю( 5. Программа должна распознать символ, введенный пользователем, что это – цифра, знак или буква. Для букв программа должна выдать № буквы по алфавиту. Результат работы программы остается на экране до нажатия клавиши Q. Результат работы программы остается на экране до нажатия клавиши Q-вот это знаю как сделать { Char...
C++ Произвести выравнивание по правому краю введенного текста помогите пожалуйста!!!! срочно надо!! задача №1. Произвести выравнивание по правому краю введенного текста, для чего к каждой строке применить функцию WIDE(str,k), которая равномерно вставляет пробелы между словами так, чтобы длина строки str стала равной k. (Величина k должна быть больше длины самой длинной строки текста.) задача №2. Напишите программу, определяющую, является ли введенная... http://www.cyberforum.ru/cpp-beginners/thread203665.html
В массиве B(n) каждый элемент,кроме первого, заменить суммой всех предедущих элементов C++
Доброго времени суток,прошу помочь мне в решении нескольких задач. Задача № 1 В массиве B(n) каждый элемент,кроме первого, заменить суммой всех предедущих элементов Задача № 2 Дан двумерный массив размером gxt, заполненный случайными числами.Определить,есть ли в данном массиве строка,содержащая больше положительных элементов,чем отрицательных. Зарание огромное спасибо!
Местонахождение точки C++
Ввести координаты (х,у) вершин многоугольника (за часовой стрелкой), и координаты отдельной точки. Найти место нахождение етой точки (Внутри многоугольника, снаружи, или на ребре). Язык С. Можна просто алгоритм, а потом я уже и сам. П.С. А можно и код программы))))
C++ Не получается разобраться Visual C++ http://www.cyberforum.ru/cpp-beginners/thread203640.html
Привет всем помогите пожалуйста кто может у меня такая проблема не могу решить задачи по C++ Работа со строками. В строке, содержащей последовательность слов, найти конец предложения, обозначенный символом "точка". Если в следующем слове первый символ – строчная буква, то заменить ее на прописную. У меня почти получилось, но в слове "точка." заменяется на главную только первая буква...
C++ Кто может помочь с Лабой на С++,я не могу написать(( Тема Операторы ВЫбора вариант 4. Для целого числа k от 1 до 99 напечатать фразу «мне k лет», учитывая при этом, что при некоторых значениях k слово «лет» следует заменить на слово «год» или «года». Вывести результат на экран по образцу: введите число 15 *********** мне 15лет подробнее

Показать сообщение отдельно
rayman
Сообщений: n/a

Текст и двумерный массив. - C++

05.12.2010, 11:06. Просмотров 515. Ответов 1
Метки (Все метки)

Смысл такой: есть файл c текстом. Нужно его открыть, и каждое слово в отдельности перенести в свой элемент массива. (все динамическое). Подскажите как сделать грамотнее, мой вариант не работает, ошибку отследить трудно, сам запутался уже, сижу долго над ней.
Код
        char ch;
	char **a;
	int c=0, v=0, w=0,s=0;
	
	ifstream fin("text.txt");
	
	while (fin) //определяю кол-во пробелов, значит столько будет и слов
	{
		fin.get(ch);
		cout << ch;
		if (ch==' ')
		s=s+1;
	}
	
	fin.clear(); 
	fin.seekg(0, ios::beg); //пытаюсь перевести указатель обратно в начало. 

	a = new char *[s+1]; //создаю массив указателей, равный кол-ву слов. 
	v=0;
	c=0;
        //а дальше приколюхи
	while (fin) // пока не достигнут конец  файла - мутим
	{
		w=0;
		fin.get(ch);

		while((fin)&&(ch!=' ')&&(ch!=',')&&(ch!='.')) //пока не встретится конец и заданые символы, смотрим длинну текущего слова.
		{	
			c=c+1; //где сейчас указатель
			w=w+1; //длинна слова
			fin.get(ch);
		}

		fin.clear();
	        fin.seekg(c-w, ios::beg); //тут я пытаюсь относительно начала файла сместить указатель назад на длинну текущего слова. 

		a[v] = new char [w]; //делаю массив под слово

		for (int i=0; i<w; i++) // пишу символы слова в созданный для него массив
		{	
			fin.get(ch);
			a[v][i]=ch;
			cout << "2";
		}

		v=v+1;
	}

	fin.close();
	system("pause");

	return 0;
Проходит пару слов и зацикливается на первом while, игнорируя второй while и for.
Вечно дурацкий вариант по лабам попадается =(
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru