程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> c語言-strcpy和strcat的使用問題,搞不懂為什麼出現這樣的錯誤?怎麼改呢》?

c語言-strcpy和strcat的使用問題,搞不懂為什麼出現這樣的錯誤?怎麼改呢》?

編輯:編程綜合問答
strcpy和strcat的使用問題,搞不懂為什麼出現這樣的錯誤?怎麼改呢》?

int _tmain(int argc, _TCHAR* argv[])

{

char n;
CString strTime; // 用於將CTime對象格式化為字符串

CTime curTime = CTime::GetCurrentTime();

cout<<GetExePath()<<endl;   

/*cout<<"請輸入要刪除幾天前的文件夾:";
cin>>n;
*/
cout<<argv[1]<<endl;

n=_ttoi(argv[1]);

// cout<<n<<endl;
CTime t=curTime-CTimeSpan(n,0,0,0);

strTime = t.Format(_T("db%Y%m%d*"));

//wcout<<(LPCTSTR)strTime<<endl;

CString m=strTime;

strcpy_s(s,256,GetExePath());
cout<<s<<endl;

strcat_s(s,256,m);
cout<<s<<endl;
transfer(s);

return 0;

1>shijianbijiao1.cpp(197): error C2664: 'strcpy_s' : cannot convert parameter 3 from 'CString' to 'const char *'
1> No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
1>shijianbijiao1.cpp(200): error C2664: 'strcat_s' : cannot convert parameter 3 from 'CString' to 'const char *'
1> No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
1>

最佳回答:


CString是Unicode編碼,strcpy_s要求參數是char*,所以你需要先把CString類型轉換為char類型
用CW2A

 strcat_s(s,256,CW2A(m));
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved