Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> содержимое файл а в мап 
:(
    Опции темы
knut
Дата 2.8.2009, 16:29 (ссылка)  | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 588
Регистрация: 7.2.2006

Репутация: нет
Всего: нет



 добрый день
есть след тесктовый файл
Цитата

bookmark3,value1
bookmark1,value2
bookmark2,value3


как его зогнать в std::map ?
т.е получить key = bookmark3 value = value1 ....



--------------------
Цитата

Многие вещи нам непонятны не оттого, что наши понятия слабы, а оттого, что данные вещи не входят в круг наших понятий.
PM MAIL   Вверх
andrew_121
Дата 2.8.2009, 16:49 (ссылка) |  (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 10
Всего: 33



knut, Читаешь строку, разделяешь на ключ и значение, добавляешь.


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
Леопольд
Дата 2.8.2009, 19:10 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 943
Регистрация: 17.6.2009

Репутация: 3
Всего: 13



Цитата(knut @ 2.8.2009,  16:29)
как его зогнать в std::map ?
т.е получить key = bookmark3 value = value1 ....

Надо прочитать и распарсить файл.  А потом:
Код

map<bookmark_type,value_type> container;
container[bookmark3] = value1;
container[bookmark1] = value2;
container[bookmark2] = value3;


Ещё кое-что. Третьим параметром шаблона идет функтор сравнения (по умолчанию less). Есть несколько вариантов:
1. Перегрузить bookmark_type::operator < 
2. Написать свой функтор.

http://www.cplusplus.com - хороший ресурс, попробуй сначала использовать его, до того как задать вопрос.

Это сообщение отредактировал(а) Леопольд - 2.8.2009, 19:32


--------------------
вопросов больше чем ответов
PM MAIL   Вверх
zim22
Дата 2.8.2009, 19:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 29
Всего: 69



здесь уже ответили.


--------------------
PM MAIL   Вверх
Lazin
Дата 2.8.2009, 19:40 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 27
Всего: 154



Код

...
using namespace boost::spirit::classic;
std::pair<std::string, std::string> elem;
std::map<std::string, std::string> map;

rule<phrase_scanner_t> line = ( 
                                  ~ch_p(',')
                                  [
                                      asign_a(elem.first)
                                  ] 
                                  << ',' << ~ch_p(',')
                                  [
                                      assign_a(elem.second)
                                  ]
                              )
                              [
                                  insert_at_a(map, elem)
                              ];
                              
 parse( file_data, line, space_p );


PM MAIL Skype GTalk   Вверх
W4FhLF
Дата 3.8.2009, 06:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


found myself
****


Профиль
Группа: Участник Клуба
Сообщений: 2831
Регистрация: 2.12.2006

Репутация: 2
Всего: 121



Код

ifstream data_file(m_filename.c_str());
if (data_file.fail())
    throw ios::failure("Can't open file. Make sure the file existing and accessing.");

string s;
map<string, string> map;
while (!data_file.eof())
{
    getline(data_file, s);
    if(s.length() < 3)
        continue;

    string key = s.substr(0, s.find(','));
    string value = s.substr(s.find(',') + 1, s.length() - 1);

    map[key] = value;
}

data_file.close();





Это сообщение отредактировал(а) W4FhLF - 3.8.2009, 06:05


--------------------
"Бог умер" © Ницше
"Ницше умер" © Бог
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0736 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.