I tiene un currentline cadena = "12 23 45"Tokenize una cadena en C++
I necesidad de extraer 12, 23, 45 de esta cadena sin utilizar bibliotecas de Boost. Como estoy usando una cuerda, strtok falla para mí. He intentado una serie de cosas que todavía no tienen éxito.
Aquí es mi último intento
while(!inputFile.eof())
while(getline(inputFile,currentLine))
{
int countVar=0;
int inputArray[10];
char* tokStr;
tokStr=(char*)strtok(currentLine.c_str()," ");
while(tokstr!=NULL)
{
inputArray[countVar]=(int)tokstr;
countVar++;
tokstr=strtok(NULL," ");
}
}
}
el uno sin strtok
string currentLine;
while(!inputFile.eof())
while(getline(inputFile,currentLine))
{
cout<<atoi(currentLine.c_str())<<" "<<endl;
int b=0,c=0;
for(int i=1;i<currentLine.length();i++)
{
bool lockOpen=false;
if((currentLine[i]==' ') && (lockOpen==false))
{
b=i;
lockOpen=true;
continue;
}
if((currentLine[i]==' ') && (lockOpen==true))
{
c=i;
break;
}
}
cout<<b<<"b is"<<" "<<c;
}
¿Es ese su código real, con el caso de 'tokstr' y 'tokStr'? Además, http://stackoverflow.com/questions/236129/how-to-split-a-string-in-c –
No informa cómo fallan. ¿Compilan? ¿Se cuelgan? ¿Dan resultados incorrectos? –
USe >> operador con un argumento entero. –