#pragma once
#include #include #include #include #include #include #include #include
struct CStudent
{
int ID;
int age;
std::wstring name;
std::string name1;
double math;
double english;
friend std::wostream & operator
std::wostream & operator
os<:locale oldlocal='os.imbue(std::locale(std::locale::locale("chs"),"",LC_CTYPE));</p'>
if (object.name.length() == 0)
{
os
else
{
os/os
os
os
}
std::ostream & operator
os
{
os
else
{
os
os
}
class COutPutStudent
{
private:
std::vectorm_StudentVec;
std::wofstream m_WFileStream;
std::ofstream m_FileStream;
public:
void Init();
void Finish();
void WriteFile();
void WriteHeader();
void WriteContent();
};
void COutPutStudent::Init()
{
m_StudentVec.clear();
CStudent A,B;
A.ID = 1;
A.age = 23;
A.english = 85;
A.math = 95;
m_StudentVec.push_back(A);
B.ID = 2;
B.age = 24;
B.name = L"小王";
B.name1 = "小王";
B.english = 75;
B.math = 86;
m_StudentVec.push_back(B);
m_WFileStream.open(L"测试W.csv",std::ios_base::out);
if (!m_WFileStream)
{
::OutputDebugStr(L"文件流出错");
}
m_FileStream.open(L"测试.csv",std::ios_base::out);
if (!m_FileStream)
{
::OutputDebugStr(L"文件流出错");
}
}
void COutPutStudent::WriteHeader()
{
m_WFileStream
m_FileStream
void COutPutStudent::WriteContent()
{
for (std::vector::const_iterator m_StudentVecIt = m_StudentVec.begin();m_StudentVecIt != m_StudentVec.end();m_StudentVecIt++)
{
m_WFileStream
for (std::vector::const_iterator m_StudentVecIt = m_StudentVec.begin();m_StudentVecIt != m_StudentVec.end();m_StudentVecIt++)
{
m_FileStream
}
void COutPutStudent::WriteFile()
{
WriteHeader();
WriteContent();
}
void TestCout()
{
std::cout
std::locale oldLocale = std::wcout.imbue(std::locale(std::locale("chs"),"",LC_CTYPE));
std::wcout<:wcout.imbue>
std::cout
std::cout<:wstring wstr='L"lwcout中文测试";</p'>
//std::wcout<:wcout>
std::locale oldLocale1 = std::wcout.imbue(std::locale(std::locale("chs"),"",LC_CTYPE));
std::wcout<:wcout.imbue>
}
int main(void)
{
TestCout();
COutPutStudent ST;
ST.Init();
ST.WriteFile();//两个都正常写入文件
getchar();
}