#include "afx.h"
#include <stdio.h>int main()
{
int lo, hi;
CString str;
CStdioFile fFibo; fFibo.Open((LPCTSTR)"FIBO.DAT", CFile::modeWrite|CFile::modeCreate|
CFile::typeText);
str.Format("%s\n", "Fibonacci squencee, less than 100:");
printf("%s", (LPCTSTR)str);
fFibo.WriteString(str); lo = hi = 1; while (hi < 100)
{
str.Format("%d\n", hi);
printf("%s", (LPCTSTR)str);
fFibo.WriteString(str);
hi = lo + hi;
lo = hi - lo;
} fFibo.Close();
return 0;
}错误提示
Error 1 error C2664: 'void ATL::CStringT<BaseType,StringTraits>::Format(const wchar_t *,...)' : cannot convert parameter 1 from 'const char [4]' to 'const wchar_t *' Error 2 error C2664: 'void ATL::CStringT<BaseType,StringTraits>::Format(const wchar_t *,...)' : cannot convert parameter 1 from 'const char [4]' to 'const wchar_t *'
是在MFC console的程序,深入浅出MFC中的,怎么提示有错,(  VS2005  )

解决方案 »

  1.   

    UNICODE问题 在工程设置里改成非UNICODE,或者在字符串前加L 如str.Format(L"%s\n", L"Fibonacci squencee, less than 100:");
      

  2.   

    #include <stdio.h>
    #include <afx.h>
    int main()
    {
    int lo, hi;
    CString str;
    CStdioFile fFibo; fFibo.Open(L"FIBO.DAT", CFile::modeWrite|CFile::modeCreate|CFile::typeText);
    str.Format(_T("%s\n"), L"Fibonacci squencee, less than 100:");

    wprintf(str);
    fFibo.WriteString(str); lo = hi = 1; while (hi < 100)
    {
    str.Format(L"%d\n", hi);
    printf("%s", (LPCTSTR)str);
    fFibo.WriteString(str);
    hi = lo + hi;
    lo = hi - lo;
    } fFibo.Close();
    return 0;
    }还应该在菜单project->** properies->Configuration Properties->C/C++ ->Code Generation
    ->Runtimm Library->Multi-threaded (/MT)!!!!!文件中结果为Fibonacci squencee, less than 100:
    1
    2
    3
    5
    8
    13
    21
    34
    55
    89