nem.txt文件格式如下:
0 2 3 4 5
2.1 3.2
4.2 6.7
23.1 3.2
3.4 3.50 4 5 6
2.1 4.6
9.8 9.5
2.3 8.51 6 7 8
2.1 2.2
2.3 2.4
文件主要有多个相同的数据块构成,每块的第一行的第一个数据是标识位,即0和1。每个数据块的行数不同,
同一行数据之间由空格隔开
我现在的问题是:
如何只读取标识为 1 时的数据块的内容??????????????
最好能给出代码!!!!!!!!!
不甚感激!!!!!
0 2 3 4 5
2.1 3.2
4.2 6.7
23.1 3.2
3.4 3.50 4 5 6
2.1 4.6
9.8 9.5
2.3 8.51 6 7 8
2.1 2.2
2.3 2.4
文件主要有多个相同的数据块构成,每块的第一行的第一个数据是标识位,即0和1。每个数据块的行数不同,
同一行数据之间由空格隔开
我现在的问题是:
如何只读取标识为 1 时的数据块的内容??????????????
最好能给出代码!!!!!!!!!
不甚感激!!!!!
bool zeroBlock; zeroBlock=false;
bool oneBlock; oneBlock=false;aryOneblock[][];
int blockindex=0;while(!feof(fp)) {
fp.readline(ary);
if (ary[0] == '1') {
if (zeroBlock) {
zeroBlock = false; //读完0数据块结束
oneBlock = true;
} else if (oneBlock) {//读完1数据块结束
process(aryOneblock[blockindex]);
blockindex++;
} else if (!oneblock) {//开始读取1数据块
oneBlock = true;
aryOneBlock[blockindex][xxx] <- ary
}
else if (ary[0] == '0') {
if (oneBlock) {
process(aryOneblock[blockindex]);
blockindex++;
oneBlock=false;
}
zeroBlock = true;
} else {
//由于0数据块不处理,所以不读取
if (oneBlock) { //读取1数据块中
aryOneBlock[blockindex][xxx] <- ary
}
}
}
bool PatientDatebase::LoadDatabase()
{
const int MAX_LINE_BUF=25;
char lineBuf[MAX_LINE_BUF];
char firstname[MAX_LINE_BUF],lastname[MAX_LINE_BUF],doc_name[MAX_LINE_BUF];
int sin,id,iRet;
ifstream iDatabase;
iDatabase.open("C:/Users/lrp/Desktop/patient.txt");
Patient patient;
if (!iDatabase.is_open() )
{
cout<<"open error"<<endl;
return false;
}
while( iDatabase.getline(lineBuf, MAX_LINE_BUF, '\n') )
{
if(lineBuf[0]==' ')
{
continue;
}
iRet = sscanf(lineBuf,"%s %s %d %s %d",firstname,lastname,&sin,doc_name,&id);
if(iRet!=5)
{
continue;
}
patient.first_name=firstname;
patient.last_name=lastname;
patient.SIN=sin;
patient.doc_name=doc_name;
patient.ID=id;
database.push_back(patient);
} list<Patient>::iterator it = database.begin();
for(it = database.begin(); it != database.end(); ++it)
{ cout << '\t' << it->first_name << '\t' << it->last_name << '\t' << it->SIN << '\t' << it->doc_name << '\t' << it->ID << endl; }
return true;
}
这是我这几天弄的一个程序的一部分,就是读取patient.txt中的内容
你研究研究把if 的条件改改就成