c 中CString,int,float型別轉換

2021-07-24 22:36:33 字數 2311 閱讀 4717

最近被各種型別轉換轉暈了,必須寫下來,下次使用方便。

1、int,float轉cstring

無論是int還是float轉csring都是容易的,format函式可以處理。

function format(const format: string; const args: array of const): string; overload;

格式指令具有以下的形式: 「%」 [index 「:」] [「-「] [width] [「.」 prec] type[type]

type引數可選的型別有d,u,f,e,g,n,m,p,s,x.

1) d 十進位制數,表示乙個整型值,u 和d一樣是整型值,但它是無符號的,而如果它對應的值是負的,則返回時是乙個2的32次方減去這個負數的絕對值。

2)f 對應浮點數

3)e科學表示法,對應整型數和浮點數

4)g 這個只能對應浮點型,且它會將值中多餘的數去掉

5)n 只能對應浮點型,將值轉化為號碼的形式

例如:format(「this is %n」,4552.2176);

返回的是:this is 4,552.22

6)m 錢幣型別,但關於貨幣型別有更好的格式化方法,這裡只是簡單的格式化,另外它只對應於浮點值

例如:format(「this is %m」,9552.21);

返回的是:this is ¥9,552.21

7)p 對應於指標型別,返回的值是指標的位址,以十六進製制的形式來表示

例如:format(「this is %p」,p);

返回的是:this is 0012f548

8)s 對應字串型別

9)x 必須是乙個整形值,以十六進製制的形式返回

例如:format(「this is %x」,15);

返回的是:this is f

舉例:

float temp_latitude=1.235;

cstring mt_longitude;

mt_longitude.format(_t("%f"), temp_longitude);//int型,"%f"改為"%d"即可

2、cstring轉int

int a;

cstring str = (_t("234.98"));

a = _ttoi(str);

str.format(_t("%d"), a);//最後的結果為234

3、cstring轉float

#include //包含wcstod

float a=12.3546;

cstring str;

a = wcstod(str,null);//字串轉float

str.format(_t("%f"), a);//float轉字串

double wcstod (const wchar_t* str, wchar_t** endptr);//convert wide string to double

另外還有一些其他函式,參照官網說明檢視即可:

strtod

convert string to double (function )

wcstol

convert wide string to long integer (function )

wcstoul

convert wide string to unsigned long integer (function )

另外,網上有人寫

float a;

cstring str;

a = (float)atof((char *)(lptstr)(lpctstr)str);

我執行了,得到的數字不對。不知道是我**出了問題還是怎樣

11月28日更新

今天移植程式發現,在之前用10版本寫的的程式中用

cstring  str=  (_t("234.98"));

a = atof(str);

同理,我在10版本的程式中使用atof可以,但是使用wcstod時,會提示「錯誤 10 error c2664: 「double wcstod(const wchar_t ,wchar_t *)」: 無法將引數 1 從「cstring」轉換為「const wchar_t *」 c:\users\admin\desktop\kilometerpost_test\kilometerpost\kilometerpostdlg.cpp 510 1 kilometerpost

」 這是字元轉換的問題。

C中extern和C 中的export

為了訪問其他編譯單元 如另一 檔案 中的變數或物件,對普通型別 包括基本資料類 結構和類 可以利用關鍵字extern,來使用這些變數或物件時 但是對模板型別,則必須在定義這些模板類物件和模板函式時,使用標準c 新增加的關鍵字export 匯出 出口 輸出 例如 extern int n extern...

C中相容C 操作

在c 中加入c 風格的 在編譯的時候,報錯的是必然的.因為不相容.例如,在c中加入c 的namespace namespace cv get window image rectangle coordinates,width and height cvapi cv rect cvgetwindowim...

C中呼叫C 函式

將 c 函式宣告為 extern c 在你的 c 裡做這個宣告 然後呼叫它 在你的 c 或者 c 裡呼叫 例如 c code extern c void f int void f int i 然後,你可以這樣使用 f c code void f int void cc int i f i 當然,這招...