facet normal 3.368912e-002 1.910605e-001 9.810000e-001
outer loop
vertex 1.026845e+000 2.821233e+000 5.241527e+001
vertex 3.676627e-016 3.002293e+000 5.241527e+001
vertex 0.000000e+000 -4.898425e-016 5.300000e+001
endloop
endfacet
像这样的文本,如果要读取里面的浮点数,将其存起来
我用
CStdioFile file;
file.ReadString(ch,59);来读取每一行,但怎么将每行的三个数分别取出
存到一数组中
outer loop
vertex 1.026845e+000 2.821233e+000 5.241527e+001
vertex 3.676627e-016 3.002293e+000 5.241527e+001
vertex 0.000000e+000 -4.898425e-016 5.300000e+001
endloop
endfacet
像这样的文本,如果要读取里面的浮点数,将其存起来
我用
CStdioFile file;
file.ReadString(ch,59);来读取每一行,但怎么将每行的三个数分别取出
存到一数组中
名称: _splite
作用: 将字符串分割为字符数组
参数: CString strSrc 源字符串
参数: CString strSplite 分割符
参数: CStringArray & arDes 目标数组
返回: static bool false 为分割失败 bool _splite(CString strSrc,CString strSplite,CStringArray & arDes)
{
arDes.RemoveAll();//初始化
while(strSrc.GetLength()>0){
int pos = strSrc.Find(strSplite,0);//定位分割符
CString strLeft;
if(pos!=-1){
//定位成功
strLeft = strSrc.Left(pos);//前面的字符串为新的分割单元
arDes.Add(strLeft);
strSrc = strSrc.Right(strSrc.GetLength()-pos-strSplite.GetLength());//指定新的分割对象
if(strSrc.IsEmpty()){
//如果已空
arDes.Add(strSrc);//剩下的字符串为分割单元
break;
}
}else{
//定位不成功
strLeft = strSrc;//将原字符串作为分割单元入目标数组
arDes.Add(strLeft);
strSrc.Empty();//清空原字符串
}
}
return arDes.GetSize()>1;//如果分割单元数量大于1定义为操作成功
}
char * strtok(char *string1,char *string2);
string1就是包含了分割符的原字符串
string2就是token字符
先把文件读入一行到一个字符串
char string[]="你读的一行字符串";
char seps[]=" ";---->空格字符
char *substring;
substring=strtok(string,seps);
然后在判断第一个字符是否为数字。