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; }
下面是結果截圖: