📄 file.cpp~
字号:
#include "file.h"#define N 11#define M 8namespace MSpace {File::File(){ int i,j; for(i=0;i<M;i++) for(j=0;j<N;j++) { FT_unknown[j][i]=0.0; FT_initial[j][i]=0.0; FT_433_offensive[j][i]=0.0; FT_334_offensive[j][i]=0.0; FT_defensive[j][i]=0.0; FT_open_defensive[j][i]=0.0; FT_343_attacking[j][i]=0.0; }}File::~File(){} float File::ChageStringToFloat(std::string str,int il){ float Ar=0; float Al=0; int i,j; if(str[0]=='-') { i=1;il--;} else i=0; for(j=0; j<il ;j++) { if(str[i]=='.') { i++; j++; break; } else{Ar=Ar*10;Ar=Ar+(str[i]-'0');} i++; } if(str[0]=='-') i=il; else i=il-1; for(; j<il ;j++) { Al=Al*0.1; Al=Al+(str[i]-'0')*0.1; i--; } if(str[0]=='-') return 0-(Ar+Al); else return (Ar+Al);}void File::ReadFormationIntoArray(){ int i,j,k; int ir,jr,ik=0; //"ik" is used to cout a substring such as "-32.455" std::string str,s; std::ifstream infile; infile.open("formations.conf"); if(!infile) { std::cerr<<"Unable to open formations.conf, Please check "; exit(0); } while(getline(infile,s)) { switch(s[0]) { case '#':break; case '0': jr=0; for(i=0;i<M;i++) { ir=0; getline(infile,s); for(j=0;j<s.length();j++) { if(s[j]=='#') {ik++;break;} else if(s[j]==' ') continue; else { k=0; while(s[j]!=' ') str[k++]=s[j++]; FT_unknown[ir++][jr]=ChageStringToFloat(str,k); } } jr++; } break; case '1': jr=0; for(i=0;i<M;i++) { ir=0; getline(infile,s); for(j=0;j<s.length();j++) { if(s[j]=='#') {ik++;break;} else if(s[j]==' ') continue; else { k=0; while(s[j]!=' ') str[k++]=s[j++]; FT_initial[ir++][jr]=ChageStringToFloat(str,k); } } jr++; } break; case '2': jr=0; for(i=0;i<M;i++) { ir=0; getline(infile,s); for(j=0;j<s.length();j++) { if(s[j]=='#') {ik++;break;} else if(s[j]==' ') continue; else { k=0; while(s[j]!=' ') str[k++]=s[j++]; FT_433_offensive[ir++][jr]=ChageStringToFloat(str,k); } } jr++; } break; case '3': jr=0; for(i=0;i<M;i++) { ir=0; getline(infile,s); for(j=0;j<s.length();j++) { if(s[j]=='#') {ik++;break;} else if(s[j]==' ') continue; else { k=0; while(s[j]!=' ') str[k++]=s[j++]; FT_334_offensive[ir++][jr]=ChageStringToFloat(str,k); } } jr++; } break; case '4': jr=0; for(i=0;i<M;i++) { ir=0; getline(infile,s); for(j=0;j<s.length();j++) { if(s[j]=='#') {ik++;break;} else if(s[j]==' ') continue; else { k=0; while(s[j]!=' ') str[k++]=s[j++]; FT_defensive[ir++][jr]=ChageStringToFloat(str,k); } } jr++; } break; case '5': jr=0; for(i=0;i<M;i++) { ir=0; getline(infile,s); for(j=0;j<s.length();j++) { if(s[j]=='#') {ik++;break;} else if(s[j]==' ') continue; else { k=0; while(s[j]!=' ') str[k++]=s[j++]; FT_open_defensive[ir++][jr]=ChageStringToFloat(str,k); } } jr++; } break; case '6': jr=0; for(i=0;i<M;i++) { ir=0; getline(infile,s); for(j=0;j<s.length();j++) { if(s[j]=='#') {ik++;break;} else if(s[j]==' ') continue; else { k=0; while(s[j]!=' ') str[k++]=s[j++]; FT_343_attacking[ir++][jr]=ChageStringToFloat(str,k); } } jr++; } break; default: std::cout<<"The first letter of the line dosen't fit the cases"<<std::endl; } } infile.close(); /* std::cout<<"FT_433_offensive"<<std::endl; for(i=0;i<N;i++) {for(j=0;j<M;j++) std::cout<<FT_433_offensive[i][j]<<" "; std::cout<<std::endl;} */}}//MSpace
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -