使用MFC或者C++完成以下两个函数(10分)
1)请实现一个读取当前系统时间的函数,并把时间格式化成字符串:“2005-11-7 10:30:00”返回给调用者。以下是函数接口描述:CString GetCurrentTime()返回值为当前时间的字符串表示;(4分)
2)请使用MFC或者C++提供一个函数,把上步取得的时间字符串存到c:\time.txt文件中。以下是函数接口描:int WriteDataToFile(LPBYTE lpData,int nDataLen) 参数lpData为操作数据块,nDataLen为操作数据块长度,返回值为实际写到文件中的数据块长度。(6分)

解决方案 »

  1.   

    CString GetCurrentTime()
    {
        return COleDateTime::GetCurrentTime.Format();
    }
      

  2.   

    int WriteDataToFile(LPBYTE lpData,int nDataLen)
    {
        CFile Output;
        if (Output.Open("c:\\time.txt", CFile::modeCreate | CFile::modeWrite, NULL))
        {
            Output.Write(lpData, nDataLen);
            Output.Close();
        }
        return nDataLen;
    }调用时(结合上一贴):
    CStrin str = GetCurrentTime();
    WriteDataToFile((LPBYTE) (LPCTSTR) str, str.GetLength());
      

  3.   

    上面的程序不能用于UNICODE版,如果要用于UNICODE版,需要在c:\\time.txt文件的开头写入UNICODE标识,并且在调用WriteDataToFile时,数据长度应该是str.GetLength的两倍。
      

  4.   

    谢谢你
    我理解题意是要把getcurrentTime函数重写下,我问好多人都和你说的一样。
    CString GetCurrentTime()
    {
         CTime time = CTime::GetCurrentTime();
         m_strYear = time.Formart("%y");
    }
    你看这样可以吗?
      

  5.   

    UNICODE版是什么?
    不好意思
      

  6.   

    CString GetCurrentTime()
    {
        return COleDateTime::GetCurrentTime.Format();
    }
    这样不算是重写GetCurrentTime函数吗?CString GetCurrentTime()
    {
         CTime time = CTime::GetCurrentTime();
         m_strYear = time.Formart("%y");
    }
    这样就是重写GetCurrentTime了,谁告诉你的?GetCurrentTime与CTime的GetCurrentTime一点关系都没有?
      

  7.   

    UNICODE只是一种存储字符串的方法,一般两种:
    一种是一个字符占一个字节,这样的话,汉语就无法表达,所以只好用两个字节,那么处理起来,就一会儿是一字节,一会儿是双字节,很麻烦,速度还慢。但存储所占的内存小一些。一种是不管什么字符都占两个字节,这样处理速度快,占内存会多一些。2000以及以后的操作系统,内核用UNICODE全部重写。所以鼓励用UNICODE码。
    VC6.0默认是MBCS码,因为VC6.0是98时代的,98及其以下的操作系统,内核都是采用MBCS码的。
      

  8.   

    补充一点,采用UNICODE编程,会有不少额外的程序量!比如申请字符串的时候要:
    unsigned short *ps = L"123";还有在做网络编程的时候,用UNICODE也会非常麻烦。
      

  9.   

    CString GetCurrentTime()
    {
         CTime time = CTime::GetCurrentTime();
         m_strYear = time.Formart("%y");
    }
    你看这样写可以吗?就问问