Как записать структуру в файл в C ++ и отправить их через ZigBee

Я попробовал 3 метода, чтобы записать структуру в файл .txt или .dat. Он записывает файл по заданному пути, но когда я открываю этот файл, он показывает только некоторые символы ASCII и не показывает структуру 1 * 1. Эти структурные переменные необходимы для доступа с использованием matlab как есть.
Мой код для C ++ ниже: —

struct packet{
int rows;
int cols;
double M;
int B;
Mat phi;
Mat y;
};
int main()
{
packet DATA[6];
DATA[1].rows=m;
DATA[2].cols=n;
DATA[3].M=M;
DATA[4].B=B;
DATA[5].phi=phi;
DATA[6].y=y;

// 1st method to write to file//
fstream binary_file("DATA.mat");
binary_file.write(reinterpret_cast<char *>(&DATA),sizeof(DATA));
binary_file.close();

// 2nd method
ofstream myfile12 ("DATA.txt");
if (myfile12.is_open())
{
myfile12 << &DATA[1]<<&DATA[2]<<&DATA[3]<<&DATA[4]<<&DATA[5]<<&DATA[6];

myfile12.close();
}
else cout << "Unable to open file";

// 3rd method//
FILE *out
outfile = fopen (DATA.dat","w");
if (outfile == NULL)
{
fprintf(stderr, "\nError opening accounts.dat\n\n");
exit
}
fwrite (&DATA, sizeof(DATA), 1, outfile);
return 0;
}

Мне нужен вывод, как этот, чтобы получить доступ к этим переменным через Matlab: —

DATA.rows=m;
DATA.cols=n;
DATA.M=M;
DATA.B=B;
DATA.phi=phi;
DATA.y=y;

Здесь значения m = 480, n = 640, M = 87, B = 16 и, используя 2-й метод, я могу записать Mat phi и y в текстовый файл.
Второй метод выдает следующий результат:

0x28f2300x28f2b80x28f3400x28f3c80x28f4500x28f4d8

1-й и 3-й метод дали результат:

lûÌo ýÌo              ÿB                                    Äñ( ìñ(           ÿB                                    üñ( $ò(             à                     ÿB                                    Lò( tò(           ÿB                                    „ò( ¬ò(         ¸ó( !   €   !             ÿB                                    Ôò( üò(           ÿB
ó( 4ó(         tó( ì )          ÀU@      ÿB                                    \ó( „ó(           ÿB                                    ”ó( ¼ó(         àó(  ÷( Ðö(     l         ÿB                                    äó(
ô(           ÿB                                     ô( Dô(                                  @ÿB    W       €[T € W €[T € W € W     lô( ”ô(           ÿB                                    ¤ô( Ìô(         Ã 'D

Пожалуйста, предложите мне, как я могу сохранить эти переменные в файл, а также отправить их через последовательную связь (xbee или zigbee).

Спасибо за любую помощь

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]