Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/50: Рейтинг темы: голосов - 50, средняя оценка - 4.92
4 / 4 / 0
Регистрация: 25.06.2010
Сообщений: 106

Как считать вектор из файла?

05.08.2011, 19:39. Показов 10639. Ответов 18
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
как считать вектор из файла?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.08.2011, 19:39
Ответы с готовыми решениями:

Как бинарно считать вектор из файла ?
Возник вопрос как считать вектор из файла(запись и считывание бинарные)? Вот код в котором собственно и возникла проблема. #include...

Как считать матрицу из файла в двумерный вектор
Доброго времени суток, начал писать шифр Скитала И столкнулся с такой проблемой, но могу считать матриwe размером 4х4 в двумерный вектор из...

Считать вектор из файла, записать вектор в файл
Доброго времени суток. Программа должна считывать числа из заданного файла, потом записывать в другой файл вектор, в котором каждый элемент...

18
Заблокирован
05.08.2011, 19:41
Цитата Сообщение от Noname2512 Посмотреть сообщение
как считать вектор из файла?

На мой взгляд самый простой способ - это с помощью стандартного алгоритма std::copy, где задаются входные итераторы для файла, а выходный итератор - этот итератор вставки для вектора
0
4 / 4 / 0
Регистрация: 25.06.2010
Сообщений: 106
05.08.2011, 19:44  [ТС]
а если мне следует брать не все элементы файла, а токо те которые соответствуют
определенным параметрам ? если не сложно с примером
0
Заблокирован
05.08.2011, 19:50
Цитата Сообщение от Noname2512 Посмотреть сообщение
а если мне следует брать не все элементы файла, а токо те которые соответствуют
определенным параметрам ? если не сложно с примером
Тогда можно написать свой алгоритм copy_if с предикатом, в котором будет задано условие.

copy( std::istream_iterator<int>( SomeStream ), std::istream_iterator<int>(),
std::back_inserter( v ), predicate );

То есть я лично бы так написал. А вам скорей всего нужно открыть входной поток

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include  <fstream>
 
int main()
{
   std::ifstream in( "FileName" );
 
   if ( !in )
   {
      std::cout << "Error!\n";
      exit( EXIT_FAILURE );
   }
 
   while ( !in )
   {
   /// здесь читаете файл и записываете данные в вектор с помощью v.push_back( value )
   }
 
   in.close();
 
   return ( EXIT_SYCCESS );
}
1
ниначмуроФ
 Аватар для PointsEqual
851 / 535 / 110
Регистрация: 12.10.2009
Сообщений: 1,913
05.08.2011, 20:13
C++
1
EXIT_SUCCESS
Добавлено через 5 минут
C++
1
while ( !in )
тогда ничего не запишется
0
Эксперт С++
1069 / 848 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
05.08.2011, 20:13
Цитата Сообщение от Noname2512 Посмотреть сообщение
как считать вектор из файла?
Чтобы считать вектор из файла, надо его туда сначала записать. Как только разберетесь, как записать вектор в файл, вопрос про чтение отпадет сам собой...
0
Higher
 Аватар для diagon
1953 / 1219 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
05.08.2011, 20:55
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
#include <fstream>
#include <vector>
#include <iterator>
int main(){
    std::ifstream input("input.txt");
    std::vector<int> vec;
    std::copy(std::istream_iterator<int> (input), std::istream_iterator<int>(), std::back_inserter(vec) );
    std::copy(vec.begin(), vec.end(), std::ostream_iterator<int> (std::cout, " ") );
}
Чтобы считать вектор из файла, надо его туда сначала записать.
А руками вбить - не вариант?)
0
Эксперт С++
1069 / 848 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
05.08.2011, 21:00
Цитата Сообщение от diagon Посмотреть сообщение
[CPP]#include <iostream>

А руками вбить - не вариант?)
Руками вбить - это НЕ вектор - это набор чисел.
Набор чисел может быть устроен КАК угодно. Мы его просто читаем стандартными средствами и помещаем в вектор. Это не то же самое, что "читать вектор".
1
ниначмуроФ
 Аватар для PointsEqual
851 / 535 / 110
Регистрация: 12.10.2009
Сообщений: 1,913
05.08.2011, 21:01
а как при помощи
C++
1
std::copy
считать матрицу из файла в
C++
1
std::vector<std::vector<int> >
?
0
4 / 4 / 0
Регистрация: 25.06.2010
Сообщений: 106
06.08.2011, 17:46  [ТС]
народ почему при компиляции ошибок нет, а когда выполняю выскакивает окно :
Debug assertion failed!
вот на этой строке
C++
1
matrix[i][j] = n; // vector< vector<int> >  matrix;
0
ниначмуроФ
 Аватар для PointsEqual
851 / 535 / 110
Регистрация: 12.10.2009
Сообщений: 1,913
06.08.2011, 19:09
Цитата Сообщение от Noname2512 Посмотреть сообщение
народ почему при компиляции ошибок нет, а когда
ты так создал матрицу?
C++
1
2
const int G = 8;
vector<vector<int> > m(G, vector<int>(G));
0
4 / 4 / 0
Регистрация: 25.06.2010
Сообщений: 106
06.08.2011, 19:22  [ТС]
нет, я написал токо : vector< vector<int> > matrix;
0
ниначмуроФ
 Аватар для PointsEqual
851 / 535 / 110
Регистрация: 12.10.2009
Сообщений: 1,913
06.08.2011, 19:22
Цитата Сообщение от Noname2512 Посмотреть сообщение
нет, я написал токо : vector< vector<int> > matrix;
исправь
1
4 / 4 / 0
Регистрация: 25.06.2010
Сообщений: 106
06.08.2011, 19:34  [ТС]
а что означает выражение в круглых скобках ?
0
Заблокирован
06.08.2011, 20:37
Цитата Сообщение от Noname2512 Посмотреть сообщение
а что означает выражение в круглых скобках ?
Если я правильно понял ваш вопрос, то в круглах скобках задано начальное количество элементов вектора, которое выражено в виде const int G = 8;
0
Эксперт С++
1069 / 848 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
06.08.2011, 20:56
Цитата Сообщение от Сыроежка Посмотреть сообщение
Если я правильно понял ваш вопрос, то в круглах скобках задано начальное количество элементов вектора, которое выражено в виде const int G = 8;
B каждый из этих 8-ми элементов вектора инициализируется вектором же...
0
ниначмуроФ
 Аватар для PointsEqual
851 / 535 / 110
Регистрация: 12.10.2009
Сообщений: 1,913
06.08.2011, 21:57
Цитата Сообщение от Noname2512 Посмотреть сообщение
а что означает выражение в круглых скобках ?
вызываются конструкторы, выделяется память

можно и подругому заполнить:
C++
1
2
3
4
5
6
7
8
9
10
11
    vector<vector<int> > m(G);
 
    vector<int> t(G);
    m[0] = t;
    m[1] = t;
    m[2] = t;
    m[3] = t;
    m[4] = t;
    m[5] = t;
    m[6] = t;
    m[7] = t;
0
4 / 4 / 0
Регистрация: 25.06.2010
Сообщений: 106
07.08.2011, 08:21  [ТС]
у меня частенько ошибку вызывает когда я выхожу за пределы g
как быть если я не знаю сколько элементов будет в матрице ?(я знаю скоко столбов)
0
 Аватар для OstapBender
594 / 532 / 76
Регистрация: 22.03.2011
Сообщений: 1,585
07.08.2011, 15:16
1) посчитать
2) в 1ой строке файла держать размер массива
3) юзать любой динамически расширяемый массив (e.g. вектор)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.08.2011, 15:16
Помогаю со студенческими работами здесь

Считать значения из файла вектор
У меня есть некоторая функция, которая читает элементы из файла в котором значения double и записывает в вектор. int N; ...

Считать посимфольно из файла в char вектор
Например в файле записаны: aaaaaaa bbbbbbb надо считать первую строчку в вектор char посимвольно, потом происходит сравнение с другим...

Считать данные из текстового файла и поместить их в вектор
long int temp; vector&lt;long int&gt; arr; string s; ifstream fin(argv); while (getline(fin, s)) { temp = atol(s.c_str()); ...

ifstream (считать матрицу из файла в двумерный вектор)
нужно из файла считать матрицу в двумерный вектор. файл выглядит так: 2 9 6 5 4 8 4 5 8 9 5 4 8 6 4 5 8 6 5 8 4 прошу помощи !

Считать слова строк из файла в вектор векторов
допустим есть вектор векторов vector&lt;vector&lt;string&gt;&gt; V1 ; как считать из файла слова, записанные в строку, так чтобы каждое слово было...


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

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru