C++ прочитать двумерный массив из файла

svetanyala

бинари, средствами CFile и т.д. не могу справиться с двумерным массивом. размеры масива произвольные

boris1963-11

Произвольные - это значит "неограниченные"?
Массив в каком формате хранится - в файле написаны его размеры? Если нет, то как вообще узнаётся, что кончается конкретная строчка?

svetanyala

массиб бинари, записан в *.txt *.dat . в принципе наверное можно в одномерный прочитать(не могу млина птом разбить. допустим мы знает что в строке 100 элементов, столбцов 200.это как пример для одного файла.хотя бы так.потом можно под произвольны подстроить

svetanyala

размеры в файле не записаны

boris1963-11

А как тогда эти размеры узнать?
Или они всё-таки жёстко заданы?
Опиши тогда, в каком виде данные хранятся в этом файле, я тогда, мжоет, просто смогу написать тебе код.

svetanyala

я их из матлаба выгружаю, просто записываю там массив в текстовый файл.как он там двуменрый массив в файл записывает я не знаю, возможно просто в одну строчку по очереди. при нажатии ф3 на файле-цифр там не видно, одни загогулины. а массив который я записываю в матлабе А[246][4000]

svetanyala

ну так как насчет кода?была бы очень признаетльна

boris1963-11

Нет, я думала, там у тебя в файле просто массив явно записан... не подумала, что так просто не бывает

evgen5555

Используй не массивы, а STL-контейнеры.

stat7984215

я их из матлаба выгружаю, просто записываю там массив в текстовый файл.как он там двуменрый массив в файл записывает я не знаю, возможно просто в одну строчку по очереди. при нажатии ф3 на файле-цифр там не видно, одни загогулины.
а что мешает из матлаба этот массив по-человечески записать, например, n строк, столбцы разделены знаком табуляции - и глазами его потом читать проще, и из программы

marizha

а нельзя просто при чтении указать в качестве буфера двумерный массив соответствующей размерности и типа данных?
только, как мне помнится, матлаб, при стандартном сохранении (save(somevar); ) в начале файла свою байду пишет... я ее руками вырезал из файла :P

svetanyala

я не save использую, а write в файл

svetanyala

подскажи как

marizha

так вроде бы...
DATATYPE array[246][4000]; CFile f; f.Open(...); f.Read(arraysizeof DATATYPE)* 246*4000);  
Оставить комментарий
Имя или ник:
Комментарий: