我有一些代码可以通过一串空格分隔的数字进行解析,但有些数字无法正确解析。
为了给出示例执行,数字是包含“30 20 2”的字符串。当我执行这个30和2被检索,但我的问题是检索20.我已经检查了几次输入,并且当第一次在循环中调用getline时,检索到的字符串是“20”,但是它的长度为3而不是2.我猜这就是为什么istringstream无法创建/获取格式化的输出。
任何有助于解决此问题的帮助都将受到赞赏。
int token;
string strToken;
istringstream input(numbers);
getline(input, strToken, ' ');
// Get first number
istringstream(strToken) >> token;
write(pipes[0][1], (char *) &token, sizeof(int));
for(int k = 1; k < numFunctions+1 ; k++)
{
getline(input, strToken, ' ');
istringstream(strToken) >> token;
write(pipes[k*2-1][1], (char *) &token, sizeof(int));
strToken = "";
}