#include<sstream>
#include<string>
using namespace std;
void GetFormatString(string pStr[],string strline)
{
int length ;
stringstream stream(strline);
int i=0;
CHAR array[MAX_PATH]={0};
while(stream.get(array,MAX_PATH,'|'))
{
length = stream.tellg();
pStr[i++] = array;
stream.seekg (length+1, ios::beg);
memset(array,0,MAX_PATH);
}
}
这个代码一直在使用,自己没有去琢磨,今天仔细看时,发现自己居然第一眼没看懂。
将strline中字符放入流stream中,并将'|'字符前的字符赋值给array,使用stream.tellg返回拷贝的位置,下次跳过'|'再进行同样的操作,直到完成提取。
之所以这么麻烦,是因为stringstream默认字符是空格,不支持其他字符。