菜鳥學習中的資料型別轉換總結

2021-08-03 08:52:37 字數 1323 閱讀 6180

斷斷續續學習c++有一段時間了,在學習和編寫自己的小工具過程中也遇到了很多問題,今天終於可以寫一篇自己的原創文章了,也不算是原創,是對自己前面程式設計過程中的小問題的彙總吧,現在整理下來供自己以後翻閱還有像我一樣的菜鳥們參考。

進入正題,首先要用格式轉換會用到一些常用的巨集,一般來說,需要在程式中新增這個標頭檔案引用#include

,用到這個標頭檔案主要是為了使用以下幾個巨集:

uses_conversion

a2ww2a

t2cw

t2ca

也就是編碼轉換的幾個巨集,它的內部封裝了multibytetowidechar和widechartomultibyte函式。

下面是我做小工具以來遇到的一些資料型別轉換:

1.       cstring轉char

uses_conversion;

char*path = t2a(inpath.getbuffer(0));

inpath.releasebuffer();

2.       cstring轉到string

uses_conversion;

stringoutpath = w2ca((lpcwstr)filepath);

(注意:uses_conversion這一句在乙個類檔案中只出現一次就可以,第二次用到格式轉換功能時不需要重複寫。並且注意它是在堆疊上分配空間的,也就是說你在你在函式未結束就不會被釋放掉。所有要注意不要在乙個函式中用while迴圈執行它,不然棧空間就馬上會分配完(棧空間一般只有2m,很小)。)

3.       string轉char*

constchar* a = ((*it)->dd).c_str();

(這個問題是我在用vector進行資料輸出的時候遇到的,我在vector中定義的string型別的資料無法通過ofstream輸出到txt文字中,後來我二姨夫幫我改**進行了這樣乙個轉換就可以輸出了,這個地方後續繼續研究一下造成原因。)

4.       double轉string

doubledx= (*it)->xx;

char b[20];

sprintf(b,"%.8lf",dx);

(這個也是在vector輸出時遇到的問題,直接通過ofstream輸出資料到文字檔案中資料自動儲存成了科學計數法的形式,沒辦法只好在輸出之前做乙個格式轉換。)

5.       cstring轉double

cstring x1 = sx.left(pos);

double xx = (float)atof((char*)(lptstr)(lpctstr)x1);

哈,目前就找到用過的這麼幾個,後續陸續補充吧。

資料型別轉換 總結

語法 cast expression as data type length convert data type length expression style 引數 expression 任何有效的表示式。data type 作為目標的系統提供資料型別。length 目標資料型別的長度 目標資料型...

資料型別轉換的總結

關於一些資料型別的轉換總結 1.bitconverter類 如 byte arry bitconverter.getbytes int a 2.encoding類 如 byte bytearray system.text.encoding.default.getbytes str 3.int.par...

C 資料型別轉換總結

string str cstring cstr str.c str string str char ch ch str.c str string str double dou dou atof str.c str string str int i i std atoi str.c str cstri...