首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

MFC 字符串分割:CString 分割浮點數並轉十六進制

     編輯:程式設計疑難解答

需求

MFC 環境下,用空格分割字符串中的浮點數,並將每個浮點數轉換為十六進制表示。

核心方法:CString::Tokenize

CString str = _T("3.14 2.718 1.414");
CString token;
int curPos = 0;

while ((token = str.Tokenize(_T(" "), curPos)) != _T("")) {
    double val = _ttof(token);           // 字符串轉 double
    CString hex;
    hex.Format(_T("0x%X"), (int)val);    // 整數部分轉十六進制
    // 或保留浮點數十六進制表示(IEEE 754)
    // 需用 memcpy 複製 double 到 uint64_t 再格式化
    TRACE(_T("原值: %s -> 十六進制: %s\n"), token, hex);
}

浮點數完整十六進制(IEEE 754)轉換

double val = _ttof(token);
uint64_t bits;
memcpy(&bits, &val, sizeof(double));
CString hex;
hex.Format(_T("0x%016llX"), bits);  // 完整 64 位十六進制

替代方案

  • strtok_s(C 模式,需複製字符串)
  • CStringList + 手寫分割循環
  • Boost.Tokenizer(跨平台,較重)

參考資源

博客園/CSDN 搜索「MFC CString Tokenize 分割」有大量完整工程示例。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved