crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> контейнер вектор записать в файл, помощь по Qt4
registr
  опции профиля:
сообщение 16.11.2009, 18:48
Сообщение #1


Участник
**

Группа: Участник
Сообщений: 115
Регистрация: 16.11.2009
Пользователь №: 1234

Спасибо сказали: 8 раз(а)




Репутация:   1  


Помогите пожалуйста, не знаю как записать в файл вектор а:

QVector<float> a;
// далее определяю a

// помогите дальше записать его в файл, например, в file.txt

QVector<float> b;
// а потом считать с него в вектор b
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
registr
  опции профиля:
сообщение 16.11.2009, 19:03
Сообщение #2


Участник
**

Группа: Участник
Сообщений: 115
Регистрация: 16.11.2009
Пользователь №: 1234

Спасибо сказали: 8 раз(а)




Репутация:   1  


Спасибо, попробую сегодня. Чтение аналогично, только через in >> ... ?

В STL (а может я путаю?) есть фунции
#include <stdio.h> 

/* vecprint: выводит вектор v длины n в файл ofp */
int *vecprint(int *v, int n, FILE *ofp)
{
    while (n--)
        fprintf(ofp, " %d%s",
            *v++, (n == 0 ? "\n" : ""));
    return ferror(ofp) ? NULL : v;
}

и
#include <stdio.h> 

/* vecfill:  заполняет вектор v длины n данными из файла ifp */
int *vecfill(int *v, int n, FILE *ifp)
{
    int *vp;
    
    for (vp = v; n > 0 && fscanf(ifp, "%d", vp++) == 1; n--)
       ;
    return ferror(ifp) ? NULL : v;    
}


Есть ли подобноее в Qt4? (только что нашел, еще не пробовал, но может и под Qt4 функции эти пойдут)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 16.11.2009, 19:26
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


Ну тут резонный задан вопрос. Файл текстовый? Если текстовый, то так, как я показал, будет запись. Чтение - почти также, но немного похитрее. Попробуйте сами.

Если файл бинарный, то вместо QTextStream использовать QDataStream. А он поддерживает вектора. И можно будет сделать строчками:
QDataStream out(file);

out << a;   ///< запись

QDataStream in(file);

in >> b;   ///< чтение


Сообщение отредактировал AD - 16.11.2009, 19:27
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- registr   контейнер вектор записать в файл   16.11.2009, 18:48
- - AD   QFile* file; /* где-то определено и инициализирова...   16.11.2009, 18:57
- - Litkevich Yuriy   в TXT, только поштучно руками сохранять. Если же п...   16.11.2009, 19:02
- - registr   Спасибо, попробую сегодня. Чтение аналогично, толь...   16.11.2009, 19:03
|- - AD   Ну тут резонный задан вопрос. Файл текстовый? Если...   16.11.2009, 19:26
- - registr   Большое спасибо!   16.11.2009, 19:32
- - registr   Методом проб и ошибок удалось записать вектор в фа...   16.11.2009, 23:44
- - Litkevich Yuriy   Цитата(registr @ 17.11.2009, 2:44) file.c...   16.11.2009, 23:58
- - registr   Вообщем да. Если файл нигде дальше открываться не ...   17.11.2009, 18:49
|- - AD   Ну есть замечания по поводу кода. Поправил немного...   18.11.2009, 13:35
- - registr   ЦитатаQFile file1("file.txt"); file1.op...   17.11.2009, 22:19
|- - AD   Цитата(registr @ 17.11.2009, 22:19) Такой...   17.11.2009, 22:35
- - registr   В векторе порядка 50000 чисел, но может быть и бол...   18.11.2009, 11:46
- - registr   Спасибо, попрубую сегодня с этим кодом. Вот была ...   18.11.2009, 16:35
- - AD   Цитата(registr @ 18.11.2009, 16:35) здесь...   18.11.2009, 18:09


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


6 чел. читают эту тему (гостей: 6, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 23.12.2024, 1:26