Форум программистов, компьютерный форум, киберфорум
Наши страницы

Запись структуры в бинарный файл - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ char* -> LPCWSTR http://www.cyberforum.ru/cpp-beginners/thread175760.html
Всем доброго времени суток. Пытаюсь перевести char* строчку (строка текста переменной длины). Собственно код: char* LastChar; LPWSTR result; //...
C++ Неработает программа переписывания текста Здраствуйте, помогите пожалуйсто я тут создал небольшую программу которая должна переписывать текст из одного фаила в другой а она переписывает только одну строку, почему? #include <stdio.h>... http://www.cyberforum.ru/cpp-beginners/thread175743.html
Цикл for C++
обьясните пожалуйста что означает for(;n--; и ) , а именно использование символа ; ?
C++ Запуск объектного кода.
Как реализовать запуск объектного кода (из внешнего файла) на Си (MinGW) из программы, не делая из него разделяемую библиотеку?
C++ Найти сумму элементов в тех строках матрицы, которые содержат хотя бы один отрицательный элемент http://www.cyberforum.ru/cpp-beginners/thread175698.html
дана целочисленная прямоугольная матрица. найти сумму элементов в тех строках,которые содержат хотя бы один отрицательный элемент. найти номера строк и столбцов всех седловых точек матрицы (матрица...
C++ Создать программу вычисления указанной величины. Результат проверить при заданных исходных значениях. #include <vcl.h> #pragma hdrstop #include <iostream.h> #include <math.h> //--------------------------------------------------------------------------- using namespace std; #pragma argsused int... подробнее

Показать сообщение отдельно
fyodor

Запись структуры в бинарный файл - C++

13.10.2010, 04:51. Просмотров 988. Ответов 0
Метки (Все метки)

Здравствуйте!

У меня есть вот такая структура, представляющая собой словарь
C++
1
map<wstring, wstring>.
Считыванием из большого текстового файла словаря я ее заполняю:
C++
1
2
3
4
5
6
7
8
9
10
11
12
wifstream infile;
infile.open("input.txt");
if (!infile){
cout<<"can not open file!"<<endl;
return 1;
}
else{
map<wstring, wstring> dict;
wstring lemma;
while(getline(infile,lemma)){
dict.insert(process(lemma));
}
Здесь функция process(lemma) производит кое-какие операции (неважно, что именно) над считанной строкой и возвращает pair<wstring,wstring>.
C++
1
pair<wstring,wstring> process(wstring a)
Как теперь лучше записать полученную структуру map<wstring, wstring> dict в двоичный файл?
C++
1
2
3
4
5
6
7
8
9
FILE *fp;
if((fp=fopen_s("output.bin", "wb+"))==NULL) {
printf("Ошибка при открытии файла.\n");
exit(1);
}
else{
fwrite(&dict, sizeof(dict), 1, fp);
fclose(fp);
}
Вот так не работает.

И как потом из созданного бинарного файла считывать?

Вообще, предполагается, что это ускорит поиск слова по словарю.
А может быть нужно все делать совсем по-другому?
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru