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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Александр Макед
0 / 0 / 0
Регистрация: 23.03.2013
Сообщений: 22
#1

чтение из файла и добавление в контейнер - C++

07.08.2013, 17:48. Просмотров 619. Ответов 2
Метки нет (Все метки)

[
C++
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
                
                                std::ofstream out;
                out.open("FilegRANDCHILED.dat", std::ios::binary | std::ios::trunc);
                if(!out)
                {
                    MessageBox(hWnd, L"File no create!!!", L"Error", MB_ICONERROR | MB_OK);
                    break;
                }
                else
                {
                    MessageBox(hWnd, L"Begin write file!!!", L"OK", MB_ICONINFORMATION | MB_OK);
                    char ID[15]={"GrandchiledDat"};
                    out.write(ID, strlen(ID));
                    std::list<GrandchiledDat>::iterator iterWrite;
 
                    for(iterWrite = dataList.begin(); iterWrite != dataList.end(); iterWrite++)
                    {
                        out.write((reinterpret_cast<char*>(&(*iterWrite))), sizeof(*iterWrite));
                    }
                    if(!out)
                    {
                        MessageBox(hWnd, L"Write to file impossible !!!", L"Error", MB_ICONERROR | MB_OK);
                        break;
                    }
                    else 
                        MessageBox(hWnd, L"Write file OK!!!", L"OK", MB_ICONINFORMATION | MB_OK);
                }
]так записываем, судя по всему успешно.











а так читаем, и программа падает, файл открывается и когда начинает читать в буфер валится =(
[
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
std::ifstream From;
            From.open("FilegRANDCHILED.dat", std::ios::binary);
            if(!From)
            {
                MessageBox(hWnd, L"File no create!!!", L"Error", MB_ICONERROR | MB_OK);
                break;
            }
            else
            {
                MessageBox(hWnd, L"Begin read file!!!", L"OK", MB_ICONINFORMATION | MB_OK);
                char ID[15];
                From.read(ID, strlen(ID));
                MessageBox(hWnd, reinterpret_cast<LPCWSTR>(ID), L"OK", MB_ICONINFORMATION | MB_OK);
 
                GrandchiledDat gcdObj;
                while(!From.eof())
                    From.read(reinterpret_cast<char*>(&gcdObj), sizeof(/*GrandchiledDat*/gcdObj));
                dataList.push_back(gcdObj);
            }
]
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.08.2013, 17:48     чтение из файла и добавление в контейнер
Посмотрите здесь:

Чтение из файла в контейнер map - C++
Вот есть структура struct Kino { int numb ; //номер кинотеатра string name; //название ктра vector&lt;string&gt; sv; //список...

Какой ассоциативный контейнер выбрать? И как реализовать в нем чтение из файла? - C++
Вот сама задание: Текстовый файл содержит следующую информацию: координату точки и угол наклона прямой, проходящей через эту точку....

Добавление значения в контейнер вектор, находящийся в map - C++
Возникла проблема: есть файл std формата: Миша 5 5 2 3 Влад 0 3 3 4 и т.д. Из него считываются данные в map &lt;string,vector&gt;. Нужно...

добавление в контейнер без указания типов данных? - C++
Привет, у меня проблема. Сразу перейду к коду: template &lt;class structType&gt; class CMyExperimentator { private: ...

Считывание текста с файла в контейнер multimap - C++
Допусти у меня есть файл записанный вот таким методом #include &lt;iostream&gt; #include &lt;map&gt; #include &lt;string&gt; #include &lt;fstream&gt; ...

Заполнить контейнер map и vector данными из файла - C++
Текстовый файл содержит в себе информацию о пяти лифтах в виде: 12 900 first 10 600 second 15 700 third 20 1000 fourth 16 800...

Как положить строку из файла в контейнер vector - C++
Нужно считать строки из файла, и все строки, начинающиеся на &quot;a, c, e...&quot; в контейнер vector положить, а другие строки на &quot;b, d, f...&quot; в...

Посимвольное чтение, добавление в конец строки - C++
Программа должна брать из файла массив символов, читать посимвольно и к каждому символу в конец добавлять .txt. Выходит не совсем...

С помощью cin.getline считать все строки файла в контейнер (вектор или очередь) - C++
Можете пожалуйсто написать код, где можно с помощью cin.getline считать все строки файла в контейнер (вектор или очередь), потом из...

Организовать заданную структуру данных: точка (x, y) плоскости, стек (добавление, удаление и чтение элемента) - C++
Организовать заданную структуру данных: точка (x, y) плоскости, стек. Определить структуру элемента и написать подпрограммы добавления,...

чтение из файла - C++
файл текст... чтение... ... char font_name = {0}; int font_size = 0;

Чтение из файла. - C++
Здравствуйте. Учусь языку С++. Отказываюсь напрочь понимать как в оконном приложении осуществить чтение из файла с условием, что мне...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Fyret
184 / 170 / 13
Регистрация: 30.07.2013
Сообщений: 359
07.08.2013, 18:06     чтение из файла и добавление в контейнер #2
Цитата Сообщение от Александр Макед Посмотреть сообщение
C++
1
2
char ID[15];
From.read(ID, strlen(ID));
strlen просто ищет первый нулевой символ, а у Вас в ID мусор после объявления. Используйте sizeof(ID).
Александр Макед
0 / 0 / 0
Регистрация: 23.03.2013
Сообщений: 22
07.08.2013, 19:16  [ТС]     чтение из файла и добавление в контейнер #3
Цитата Сообщение от Fyret Посмотреть сообщение
strlen просто ищет первый нулевой символ, а у Вас в ID мусор после объявления. Используйте sizeof(ID).
спасибо, заработала=)

Добавлено через 8 минут
Цитата Сообщение от Александр Макед Посмотреть сообщение
спасибо, заработала=)
можно закрывать=)

Добавлено через 20 минут
Цитата Сообщение от Fyret Посмотреть сообщение
strlen просто ищет первый нулевой символ, а у Вас в ID мусор после объявления. Используйте sizeof(ID).
в Общем работает, но при проверке оказывается что до конца не дочитывает=(

Добавлено через 30 минут
ПРИ ВОТ ТАКОЙ ГРУБОЙ ПРОВЕРКЕ
C++
1
2
3
4
                if(!From)
                    MessageBox(hWnd, L"File read imposible!!!", L"Error", MB_ICONERROR | MB_OK);
                else
                    MessageBox(hWnd, L"File read!", L"Ok", MB_ICONINFORMATION | MB_OK);
ОКАЗЫВАЕТСЯ ЧТО при чтении появились ошибки..
Yandex
Объявления
07.08.2013, 19:16     чтение из файла и добавление в контейнер
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru