Mam currentLine String = "12 23 45"tokenize ciąg w C++
muszę wyodrębnić 12, 23, 45 z tego łańcucha bez użycia bibliotek boost. Ponieważ używam napisu, strtok zawodzi dla mnie. Próbowałem wielu rzeczy, które wciąż nie przyniosły sukcesu.
Oto moja ostatnia próba
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," ");
}
}
}
jeden bez 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;
}
Czy to Twój prawdziwy kod, z niedopasowanymi literami 'tokstr' i' tokStr'? Ponadto, http://stackoverflow.com/questions/236129/how-to-split-a-string-in-c –
Nie zgłaszasz, w jaki sposób zawodzą. Czy oni się kompilują? Czy się rozbijają? Czy dają nieprawidłowe wyniki? –
USe >> operator z argumentem całkowitym. –