先介紹以前常用的方法(stoi或atoi)
在以往的c++編程中當我們輸入整行以空格作爲分割的數字時
由於整行讀入的字符串,我們會採用空格切分字符串,在進行處理
stoi需要包含頭文件#include<string>
atoi需要包含頭文件#include<sctdlib>
stoi(string)參數是一string類型,當字符串不合法時,會報錯
atoi(char*)參數是char*類型,即c字符串,當字符串非法時,他會從字符串開始尋找正負號小數點或者數字,遇到非法字符時停下
例如“123HD23330”通過調用atoi返回值爲123,而stoi則會直接報錯
此外還有一函數strtoi(char*)用法與atoi一直,只是stroi可以指定的進制
以上是整數類型的轉換,此外還有stof(),stod(),strtod()等函數可以進行浮點數的轉換
接下來是要介紹的stringstream類,運用此方法不需要講一羣數字組成的串用空格分開
需要#include<sstream>
通過stringstream類對象實現字符串轉
實例如下
#include<sstream>
#include<string>
#include<iostream>
using namespace std;
int main(){
string line;
while(getline(cin,line)){
int x;
stringstream ss(line); //建立stringstream對象,初始化流內容爲line所代表的字符串
while(ss>>x) //從line中一次讀取數字存入x
cout<<x<<endl;
}
return 0;
}
如果輸爲:"12 23 43 555"
則輸出爲
12
23
43
555