2013-04-30 67 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 
} 
相关问题