#include <fstream> #include <iostream> #include <cstring> using namespace std;
char** ppInstrumentID; //char *pInstrumentID; void infile(char* inname);
int main() {
infile("./config.cnf"); return 0; }
void infile(char* inname) { string buffer; char str[10]; char str2[10]; int num=0; int num2=0; ifstream in (inname); if (!in.is_open()) { cout << "Error opening file" ; } else{ while (in.good()) { //buffer2=buffer2+buffer; in.getline(str,8,','); num++; //cout<<num<<endl; // cout<<str<<endl; } } in.clear(); streambuf* pbuf = in.rdbuf(); pbuf->pubseekpos(0); //in.close(); cout<<"the instrument total is:"<<num<<endl;
ppInstrumentID =new char*[num]; int i=0; while(i<num) { ppInstrumentID[i]=new char[9]; i++; }
if(in.is_open()) { while(in.good()) { in.getline(str,8,','); ppInstrumentID[num2]=str; cout<<"this is" <<num2<<endl; //cout<<"str is:"<<str<<endl; cout<<"ppInstrumentID is:"<<ppInstrumentID[num2]<<endl; num2++; } } in.close();
return ; } //思路
1 getline逗号分隔取得总的合约数目,注意二次读取前 进行标记重置。否则出错,无法二次读取,即使关闭重新打开也不行。
2 二维指针的使用,char** 动态空间分配,char* 的循环空间分配。次代码不包含 空间释放。