首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

MFC初学char *拼接cstring的有关问题

2012-08-10 
MFC初学char *拼接cstring的问题C/C++ codechar *filepathvaluee:\\recordCString strCTime tmtmCT

MFC初学char *拼接cstring的问题

C/C++ code
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);//这里出问题了


最终的结果是 e:\record\2012\2012-07\2012-07-21\

[解决办法]
C/C++ code
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,追加

热点排行