最近被各種型別轉換轉暈了,必須寫下來,下次使用方便。
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 當然,這招...