我在使用c ++中的strtock时遇到问题我需要从文件中读取以下行
6:00,6:20,6:40,7:00,7:20,7:40,8:00,8:50,9:40,10:30,11:20,12:00 的长度这条线是未知的(我不知道我有多少参数);
我尝试做这个功能:
void RailwayLine::initilizeLoz(char line[1024])
{
char * pch;
char * timeReader;
Hour *hour;
char * pch2=NULL;
int time;
int minute;
char line2[1024];
strcpy(line2,line);
pch = strtok (line2,",");
while (pch != NULL)
{
delete pch2;
pch2= new char(strlen(pch)+1);
if(pch2!=NULL)
strcpy(pch2,pch);
timeReader = strtok (pch2,":");
time=atoi(timeReader);
timeReader = strtok (NULL,":");
minute=atoi(timeReader);
hour=new Hour(time,minute);
this-> UpdateLoz((*hour));
pch=strtok(NULL,",");
}
}
Run Code Online (Sandbox Code Playgroud)
但它不起作用.itj只读取第一个参数(7:10)!什么可以是什么问题?我该如何改进我的代码?谢谢
c++ ×1