📄 initi.cpp
字号:
/*********《程序可读取H矩阵文件格式》***********
/ H矩阵的文件以行稀疏的形式存储。格式如下: /
/每行以行号开头,后面跟元素为1的列号,数字 /
/之间用逗号分开。当一行完后,用换行符跳到下 /
/一行直到写完整个矩阵。 /
***********************************************/
#include "LR_en_de_CODE.h"
using namespace std;
void initi();
extern struct Anode_inf
{
bool flag;
int col_num;
double q_dmeg;
double r_meg0;
double r_meg1;
};
extern struct Bnode_inf
{
bool flag;
int Acol_num;
int Arow_num;
};
extern Anode_inf Anode_inf_mat[H_row][Hmax_rowdeg];
extern Bnode_inf Bnode_inf_mat[H_col][Hmax_coldeg];
unsigned char H_check[H_row][H_col];
void initi()
{
int temp_int,i,j;
char temp_char;
for(i=0;i<H_col;i++)
{
for(int j=0;j<Hmax_coldeg;j++)
{
Bnode_inf_mat[i][j].flag=false;
}
}
for(i=0;i<H_row;i++)
{
for(j=0;j<H_col;j++)
{
H_check[i][j]=0;
}
}
ifstream check_mat("mat.txt",ios_base::in);
if(check_mat.is_open()==0)
{
cout<<endl<<"!!!文件mat.txt未找到,无法读入校验矩阵!!!"<<endl;
exit(0);
}
for(i=0;i<H_row;i++)
{
check_mat>>temp_int;
//cout<<temp_int;
j=0;
while(check_mat.peek()==',')
{
check_mat>>temp_char;
check_mat>>temp_int;
if(temp_int!=0)
{
H_check[i][temp_int-1]=1;
Anode_inf_mat[i][j].flag=true;
Anode_inf_mat[i][j].col_num=temp_int-1;
for(int k=0;k<Hmax_coldeg;k++)
{
if(Bnode_inf_mat[temp_int-1][k].flag==false)
{Bnode_inf_mat[temp_int-1][k].Arow_num=i;
Bnode_inf_mat[temp_int-1][k].Acol_num=j;
Bnode_inf_mat[temp_int-1][k].flag=true;
break;}
}
}
else
{
Anode_inf_mat[i][j].flag=false;
}
//cout<<temp_char<<" "<<temp_int;
j++;
}
//cout<<endl;
}
check_mat.close();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -