Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Почему строка не выводиться из вектора ? / 4 сообщений из 4, страница 1 из 1
25.08.2013, 19:13
    #38376976
gera3323
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему строка не выводиться из вектора ?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
#include <iostream>
#include <Windows.h>
#include <fstream>
#include <locale>
#include <vector>

	using namespace std;

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

	const int count     = 3;
	      int LoadIndex = 0;

		ifstream if_file("C:\\text.txt");

		if(!if_file.is_open())
		{
				cerr<<"not found file: "<<"text.txt"<<endl;
				cin.get();
				return -1;
		}
		
		vector<char*> array;

		char *buffer = new char[255];

			while(!if_file.eof())
			{
				if_file.getline(buffer,255,'.');
				strcat(buffer,".");

			     array.push_back(buffer);

/*
      если делаю тут cout<<array[0]<<endl; 
     все выводит
*/

			}

				cout<<array[0]<<endl;

	 cin.get();

	return 0;
}
...
Рейтинг: 0 / 0
25.08.2013, 21:59
    #38377013
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему строка не выводиться из вектора ?
Ты в кастрюле сварил борщ. Сказал: "Борщ в кастрюле"
Потом вылил из кастрюле борщ и сварил в ней пельмени. Сказал: "Пельмени в кастрюле"
Потом выкинул пельмени и сварил в той-же самой кастрюле щи. Сказал: "Щи в кастрюле"

Где сейчас борщ и как до него добраться?
...
Рейтинг: 0 / 0
26.08.2013, 08:42
    #38377106
m_Sla
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему строка не выводиться из вектора ?
gera3323, ты выделил буфер 255 байт и запомнил его адрес .
Читаешь строку и помещаешь в буфер. В вектор добавляешь адрес буфера.
Читаешь вторую строку в буфер. Первая строка при этом теряется, она перезаписалась второй строкой. В вектор добавляешь адрес буфера.
В итоге у тебя в буфере содержится вторая строка. В векторе содержится два адреса на один и тот же буфер, т.е. на вторую строку.
...
Рейтинг: 0 / 0
26.08.2013, 13:56
    #38377408
gera3323
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему строка не выводиться из вектора ?
m_Slagera3323, ты выделил буфер 255 байт и запомнил его адрес .
Читаешь строку и помещаешь в буфер. В вектор добавляешь адрес буфера.
Читаешь вторую строку в буфер. Первая строка при этом теряется, она перезаписалась второй строкой. В вектор добавляешь адрес буфера.
В итоге у тебя в буфере содержится вторая строка. В векторе содержится два адреса на один и тот же буфер, т.е. на вторую строку.

если я вывожу вектор через for выводятся только последние буквы каждого предложения.
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Почему строка не выводиться из вектора ? / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]