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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ char* -> LPCWSTR http://www.cyberforum.ru/cpp-beginners/thread175760.html
Всем доброго времени суток. Пытаюсь перевести char* строчку (строка текста переменной длины). Собственно код: char* LastChar; LPWSTR result; //...
C++ Неработает программа переписывания текста Здраствуйте, помогите пожалуйсто я тут создал небольшую программу которая должна переписывать текст из одного фаила в другой а она переписывает только одну строку, почему? #include <stdio.h> #include <iostream> using namespace std; void main() { FILE *file; char* file_name = "filee.txt"; char* file_namee = "file.txt"; http://www.cyberforum.ru/cpp-beginners/thread175743.html
Цикл for C++
обьясните пожалуйста что означает for(;n--; и ) , а именно использование символа ; ?
C++ Запуск объектного кода.
Как реализовать запуск объектного кода (из внешнего файла) на Си (MinGW) из программы, не делая из него разделяемую библиотеку?
C++ матрица. седловые точки. http://www.cyberforum.ru/cpp-beginners/thread175698.html
дана целочисленная прямоугольная матрица. найти сумму элементов в тех строках,которые содержат хотя бы один отрицательный элемент. найти номера строк и столбцов всех седловых точек матрицы (матрица А имеет седловую точку Аij , если Аij является минимальным элементом в i-ой строке и максимальным в j-ом стлбце). Добавлено через 3 часа 25 минут никто неможет седловые найти?(((
C++ Создать программу вычисления указанной величины. Результат проверить при заданных исходных значениях. #include <vcl.h> #pragma hdrstop #include <iostream.h> #include <math.h> //--------------------------------------------------------------------------- using namespace std; #pragma argsused int main(int argc, char* argv) { double a1,a2,a3,x,y,z; //x=StrToFloat(Edit1->Text); подробнее

Показать сообщение отдельно
fyodor
Сообщений: n/a
13.10.2010, 04:51     Запись структуры в бинарный файл
Здравствуйте!

У меня есть вот такая структура, представляющая собой словарь
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);
}
Вот так не работает.

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

Вообще, предполагается, что это ускорит поиск слова по словарю.
А может быть нужно все делать совсем по-другому?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 21:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru