我的輸入格式:如何正確分割字符串中的數字?
192,21,4 33,2,1 23,7,61
,我想只獲得數字。
#include <iostream>
#include <string>
#include <sstream>
#include <cmath>
using namespace std;
int strtoint(const std::string str){ //converting the string to integer
float a = str.length();
int result = 0;
for(int i=1; i<=str.length(); i++){
result+=(str[i-1]-'0')*pow(10,(a-1));
a--;
}
return result;
}
int main()
{
string name;
string segment;
while(getline (cin,name, ' ')){
stringstream test(name);
while(getline(test, segment, ','))
{
cout << segment <<" "<<strtoint(segment)<<endl;
}
}
return 0;
}
我沒有獲得最後一個(61)。所以輸出是192 21 4 33 2 1 23 7.
如何獲得所有數字?
我只是跑這ideone並得到了所有9個整數,印刷兩次,每次在單獨一行:http://ideone.com/lvzTpq – Derek
@notch,你也在輸出結束時得到572?我相信這可能是因爲getline在61末尾添加換行符(「\ n」)來分割字符串。如果完全不顯示,getline不知道返回,因爲它沒有接收空格(「」 )也不是換行符(「\ n」) –
Derek的輸入在61之後加上換行符。'getline'不關心\ n,也刪除了分隔符。 – Peter