2010-11-14 108 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

相關問題