2013-04-30 105 views
1

我在想知道哪種解析座標的最好方法,這些座標在C++中一起使用相同的string在C++中解析座標字符串的最佳方法

例子:

1,5 
42.324234,-2.656264 

結果應該是兩個double變量...

+1

如何將一個非整數解析爲'long'? – Angew 2013-04-30 09:14:22

+0

我認爲他的意思是雙打。 – stardust 2013-04-30 09:15:12

+0

是的,對不起...編輯... – apascual 2013-04-30 09:15:52

回答

4

如果字符串的格式總是喜歡x,y,那麼這應該是足夠了。

#include <string> 
#include <sstream> 

double x, y; 
char sep; 
string str = "42.324234,-2.656264"; 
istringstream iss(str); 

iss >> x; 
iss >> sep; 
iss >> y; 
+0

非常好,清楚的答案...請更正「istrinstream」 - >「stringstream」,以便其他人也可以找到它有用... :-) – apascual 2013-04-30 09:28:32

+0

@apascua謝謝。並做了。 – stardust 2013-04-30 09:30:53

1

使用while (std::getline(stream, line))提取每一行,然後初始化一個std::istringstreamline。然後你就可以從中提取像這樣:

double x, y; 
if (line_stream >> x && 
    line_stream.get() == ',' && 
    line_stream >> y) { 
    // Extracted successfully 
} 
相關問題