C++不像Java和C#一樣在進行數據類型轉換時直接調用一些類方法就可以了,使用起來很簡單。
一個很簡單的例子就是string str=“D:\\”+1+“.txt”;這在Java或者C#里面是可以自動拆箱和包
箱就可以了,但是在C++里面是不可以的。當然這只有一個文件還好,但是當我們要使用for循環去遍
厲一個文件夾下的1,2,3...命名的文件時或許就有點麻煩了。由於我自己碰到過這種情況,所以這里寫
寫幾種方法。或許不是最好的方法,但是權當練練筆了,如果你發現錯誤或者有更好的方法歡迎指教。
方法一:這個方法比較笨就是自己寫個函數如string getString(int value){},實現很簡單就不寫了。
通過一個個判斷然后進行字符連接,最后把字符返回即可。類似的int getInt(string str){},可以把string
換為int。
方法二:就是使用一些C++的文件流或者C的函數:
如下
/*
C++ String 和int的相互轉換
*/
#include<iostream>
#include<sstream>
using namespace std;
int main(){
/*
使用C標准庫里面的atoi
*/
//string to int
string str="123";
int value=std::atoi(str.c_str());
cout<<"string to int value:"<<value<<endl;
/*
C++標准庫里面,使用stringstream:
(stringstream 可以用於各種數據類型之間的轉換)
*/
std::stringstream sstr;
//string to int
sstr<<"520";
int value2;
sstr>>value2;
cout<<"string to int value2: "<<value2<<endl;
//int to string
int value3=125;
std::stringstream sstr2;
sstr2<<value3;
string str2;
sstr2>>str2;
cout<<"int to string str2:"<<str2<<endl;
string filepath="D:\\"+str2+".txt";
cout<<filepath<<endl;
/*
to_string();
*/
int value4=33;
string str3=to_string(value4);
cout<<"int to string str3:"<<str3<<endl;
}
下面是結果截圖: