1 char*的格式化
1.1 使用sprintf()
例:sprintf(raw_obs, "data\\%dddddd_raw_obs.txt", ptime_info->tm_year+1900, ptime_info->tm_mon+1, ptime_info->tm_mday, ptime_info->tm_hour, ptime_info->tm_min, ptime_info->tm_sec);
2 string的格式化
2.1 使用stringstream(#include )
例:
string str1 = "", str2 = "";
stringstream ss;
ss << setw(4) << year << "/" << setw(2) << setfill('0') << month << "/" << setw(2) << setfill('0') << day;
ss >> str1; // 形如2014/09/07
ss.clear();
ss << setw(2) << hour << ":" << setw(2) << setfill('0') << minute << ":"
<< setw(4) << setfill('0') << fixed << setprecision(1) << second;
ss >> str2; // 形如18:38:40.5
ss.clear();
return str1 + " " + str2; // stringstream不能直接构造带空格的字符串,需要另行添加
2.2 先格式化为char*,然后转成string
3 CString
例:
DWORD dwAddr;
BYTE bt1, bt2, bt3, bt4;
m_ipAddr_ntrip.GetAddress(bt1, bt2, bt3, bt4);
CString m_ntrip_ip;
m_ntrip_ip.Format("%d.%d.%d.%d", bt1, bt2, bt3, bt4);