MFC初学char *拼接cstring的问题
char *filepathvalue="e:\\record";CString str;CTime tm;tm=CTime::GetCurrentTime();str=tm.Format("\\%Y\\%Y-%m\\%Y-%m-%d\\");char *datefile=str.GetBuffer (str.GetLength ()); strcpy(filepathvalue,datefile);//这里出问题了char *filepathvalue="e:\\record";->char filepathvalue[256]="e:\\record";
[解决办法]
char *filepathvalue 是常量
[解决办法]
char *filepathvalue="e:\\record";
-----------
你的filepathvalue指针指向的是常量区,不能修改其指针指向的值
[解决办法]
不会出错,如果较真的话,你也可以这样。
char *filepathvalue;
CString str;
CTime tm;
tm = CTime::GetCurrentTime();
str = tm.Format("\\%Y\\%Y-%m\\%Y-%m-%d\\");
char *datefile =str.GetBuffer(str.GetLength());
filepathvalue = new char[sizeof("e:\\record")+str.GetLength()+1];
strcpy(filepathvalue,"e:\\record");
strcpy(filepathvalue+sizeof("e:\\record")-1,datefile);//这里出问题了
str.ReleaseBuffer();
printf("%s\n",filepathvalue);
[解决办法]
filepathvalue把这个变量改成CString然后,用AppendFormat,追加