2010-11-14 105 views

回答

4

使用stringstream

#include <sstream> 

stringstream ss; 
ss << "12.34"; 
double d = 0.0; 
ss >> d; 
10

如果您使用boost库,lexical cast是一个非常流畅的方法。

2

你可以用字符串流做。 您也可以捕获无效输入,如给予非数字并要求它转换为int。

#include <iostream> 
#include <sstream> 
using namespace std; 

int main() 
{ 
    stringstream s; 
    string input; 
    cout<<"Enter number: "<<endl; 
    cin>>input; 
    s.str(input); 
    int i; 
    if(s>>i) 
     cout<<i<<endl; 
    else 
     cout<<"Invalid input: Couldn't convert to Int"<<endl; 
} 

如果转换失败,s>>i返回零,因此它会打印无效输入。

+0

你好像缺少一些空格=) – 2010-11-14 15:29:57

相关问题