This project is hard to implement. The following code is an implementation of simulated action log output.
//actlog.cpp
#include <string.h>
#include <iostream>
using namespace std;
int gPubColFlg = 1;
int max_dmd = 3;
int dmdTbl[5] = {0, 0, 3, 4, 5};
int gdmdtbl_cnt = 5;
int col_cnt = 0;
int PopDmdTbl() {
int tmptable[5];
for(int i = 0; i < max_dmd; i++){
if (dmdTbl[i] == -1) {
if (gdmdtbl_cnt > 1){
memcpy(&tmptable, &dmdTbl[i + 1], sizeof(dmdTbl[0]) * (gdmdtbl_cnt - 1));
memset(&dmdTbl[i], 0, sizeof(dmdTbl[0]) * gdmdtbl_cnt);
memcpy(&dmdTbl[i], &tmptable, sizeof(dmdTbl[0]) * (gdmdtbl_cnt - 1));
if (!gPubColFlg && dmdTbl[max_dmd - 1] > 0) {
cout<<"start sch collect. "<<dmdTbl[max_dmd - 1]<<endl;
dmdTbl[max_dmd - 1] = -1;
col_cnt++;
}
i = -1;
}
else{
memset(&dmdTbl[i], 0, sizeof(dmdTbl[0]));
}
gdmdtbl_cnt--;
}
}
if (gPubColFlg) {
if (dmdTbl[0] == 0){
cout<<"start sch collect. "<<dmdTbl[0]<<endl;
dmdTbl[0] = -1;
col_cnt++;
}
for (int n = 1; n < max_dmd; n++) {
if (dmdTbl[n] > 0){
cout<<"start sch collect. "<<dmdTbl[n]<<endl;
dmdTbl[n] = -1;
col_cnt++;
}
else break;
}
}
return 0;
}
int isEndPubCol() {
int n = 0;
for (n = 0; n < gdmdtbl_cnt; n++) {
if (dmdTbl[n] == 0) break;
}
return (n == gdmdtbl_cnt);
}
int main() {
cout<<"--------- public line collecting ---------"<<endl;
while (1) {
PopDmdTbl();
cout<<"===== next ====="<<endl;
if (isEndPubCol()) {
gPubColFlg = !gPubColFlg;
break;
}
}
cout<<"--------- private line collecting ---------"<<endl;
while (col_cnt < gdmdtbl_cnt) {
PopDmdTbl();
cout<<"===== next ====="<<endl;
}
return 0;
}
April 23th Thursday (四月 二十三日 木曜日)
最新推荐文章于 2022-03-23 22:45:20 发布