关于CString::Format的参数问题~急~高手帮忙啊~
我讲一个点类成员存入一个txt出现了这样的问题。
代码如下:
buffer.Format( "%s%d ",buffer,p[i].x);
file.Write(buffer,sizeof(p[i].x));
buffer.Empty();
buffer.Format( "%s%d ",buffer,p[i].y);file.Write(buffer,sizeof(p[i].y));buffer.Empty();
奇怪的是,保存在文本里是
"屯100 237 "
这一类的东西,但实际上p[i]里的是1,1
而当我改成
buffer.Format( "%s%d ",,p[i].x);
时,却会出现内存溢出的错误。
向高手求救~
[解决办法]
buffer.Format( "%s%ld ",buffer,p[i].x);
[解决办法]
Remarks
The call will fail if the string object itself is offered as a parameter to Format. For example, the following code:
CString str = "Some Data ";
str.Format(_T( "%s%d "), str, 123) ); // Attention: str is also used in the parameter list.
causes unpredictable results.
你的buffer.Format( "%s%d ",buffer,p[i].x); 不行吧