CString输出文本对齐处理
int HasChineseChar(const CString& str){
CString content;
int count = 0;
for (int i = 0; i < str.GetLength(); i++)
{
if (str.GetAt(i) > 255)
{
content += str.GetAt(i);
count++;
}
}
return count;
}
void CMFCApplication1Dlg::OutputLDCaseCoe()
{
CStdioFileEx file;
if (!file.Open(_T("LDCaseCoe.txt"), CFile::modeCreate | CFile::modeWrite | CStdioFileEx::modeWriteUnicode, nullptr))
return;
file.WriteString(_T("-------------荷载组合分项系数-------------\n"));
std::vector<CString> LDCaseStrVec;
LDCaseStrVec.push_back(_T("DL"));
LDCaseStrVec.push_back(_T("地面堆载"));
LDCaseStrVec.push_back(_T("覆土荷载"));
LDCaseStrVec.push_back(_T("侧向土压力(低)"));
LDCaseStrVec.push_back(_T("水压力(低)"));
LDCaseStrVec.push_back(_T("侧向土压力(常)"));
LDCaseStrVec.push_back(_T("LL[专用]"));
LDCaseStrVec.push_back(_T("LL1"));
LDCaseStrVec.push_back(_T("LL2"));
LDCaseStrVec.push_back(_T("水浮力"));
LDCaseStrVec.push_back(_T("EX"));
LDCaseStrVec.push_back(_T("EY"));
LDCaseStrVec.push_back(_T("SOIL"));
//随机数
std::default_random_engine e;
std::uniform_real_distribution<double> u(0, 1);
e.seed(10);
std::vector<int> spaceLengthVec;
CString str;
for (size_t i = 0; i < LDCaseStrVec.size(); i++)
{
CString stemp = LDCaseStrVec;
CString result;
result.Format(_T(" %s"), stemp);
str += result;
int count = HasChineseChar(result);
int length = result.GetLength();
if (count > 0)
length += count;
spaceLengthVec.push_back(length);
}
str += _T("\n");
file.WriteString(str);
str = _T("");
for (int i = 0; i < 10; i++)
{
for (size_t j = 0; j < LDCaseStrVec.size(); j++)
{
CString temp;
temp.Format(_T("%%%d.2f"), spaceLengthVec);
CString result;
double randomValue = u(e);
result.Format(temp, randomValue);
str += result;
}
str += _T("\n");
file.WriteString(str);
}
file.Close();
}
页:
[1]