可能你会一看就说是内存释放的问题,可是
这个不是最主要的,要是有两个错才会去想到这,可是这也是不可以忽视的就上面说的,没有结束符'\0'都是错
可是要是唯一的,就是你的pcNewColor = (char *)malloc(strlen(pcColor))
这一行中的strlen(pcColor),在32位机里就永远是4,因为pcColor是指针在C++中对指针用strlen的结果就是和strlen(int)一样,这里是你最大的错。 所以这里不能用strlen求长度,要么你自己计算pcColor的长度,要么你就用类string,你要是用的MFC也可以考虑CString里面全是有封装好的函数
的,如果全不用,我也可以推荐一个API给你,你可以用strlen(const char *),可是不管用那个全要多分配一个char保存结束符'\0',用后要释放
——————————
是的,不好意思
一个malloc我就没看你有的函数名,嘿嘿木有区别,bule是以前的命名规范,后来sun公司脑袋打铁去了,觉得用大写的好一点,就有了BLUE这种命名规范,之所以没有删除blue是因为已经有很多人用了blue这种写法,如果直接删除了的话会导致新版本jdk不兼容老版本的程序,所以才留下来的而已 现在写的话用BLUE吧
纯手打,记得采纳哟哈哈 我刚看过这一张的 在win32API函数中有一部分控制台的函数库。
#include <widows.h>然后
int main(){
HANDLE Screen = GetStdHandle(STD_OUTPUT_HANDLE)
SetConsoleAttribute(Screen,FOREGROUND_RED)//这个表示红色文本,绿色为FOREGROUND_GREEN蓝色就是blue了
cout <<...
}
这个函数库还有检测键盘输入控制输出背景等功能,你可以去研究下。
评论列表(0条)