作者:伊劾kj | 来源:互联网 | 2023-05-17 13:21
关于Sprintf()函数的代码如下:sprintf(space,总磁盘空间为:%.2fG,剩余磁盘空间为:%.2fG(占%.2f%c),dtotalspace,dfreespace,lv
关于Sprintf()函数的代码如下:
sprintf(space,"总磁盘空间为:%.2fG,剩余磁盘空间为:%.2fG(占%.2f%c)",dtotalspace,dfreespace,lv,'%');//其中dtotalspace为19.528884887695,dfreespace为11.946224212646,lv为61.00000000。
上面这段代码在debug模式下运行良好,运行结果为:"总磁盘空间为:19.53G,剩余磁盘空间为:11.95G(占61%)".
但这个代码在Release模式下,却意外的退出了。不知道是哪里的问题,请各位指教。
8 个解决方案
space如果是数组,检查范围,如果是指针,检查是否申请空间
space的空间有效性没有问题,换成wsprint问题依然如故。
你不妨这样试试:
sprintf(space,"总磁盘空间为:%.2lfG,剩余磁盘空间为:%.2lfG(占%.2lf%c)",dtotalspace,dfreespace,lv,'%');
(不是数字1啊,是字母L)
看看你的数组空间够不够,另外,百分号可以直接写到格式化字符串中,写两个就行了
sprintf(space,"总磁盘空间为:%.2lfG,剩余磁盘空间为:%.2lfG(占%.2lf%%)",dtotalspace,dfreespace,lv);
可以这样试试:
CString str;
str.Format("总磁盘空间为:%.2lfG,剩余磁盘空间为:%.2lfG(占%.2lf%%)",dtotalspace,dfreespace,lv);
AfxMessageBox(str);
使用CString试试
如果不想用MFC类把space的空间申请大些例如256