用SetConsoleTextAttribute设置颜色,然后putchar输出,循环输出一个不同颜色的字符串,结果出现奇怪显示
void show(char *content, unsigned short *colors) {
HANDLE handle_out = GetStdHandle(STD_OUTPUT_HANDLE);
system("cls");
unsigned i, j, index;
for (i = 0; i < strlen(content); i++) {
SetConsoleTextAttribute(handle_out, colors[index]);
putchar(content[index]);
}
}
出现奇怪线条
可能是不断设置颜色出现问题?
不要那些白色线条
不知道是不是与你提供的代码里面index没有初始化有没有关系,我用你的代码修改后测试,发现显示正常,如下:
#include <stdio.h>
#include <windows.h>
void show(char *content, unsigned short *colors) {
HANDLE handle_out = GetStdHandle(STD_OUTPUT_HANDLE);
system("cls");
unsigned i, j, index;
for (i = 0; i < strlen(content); i++) {
SetConsoleTextAttribute(handle_out, colors[i]);
putchar(content[i]);
}
}
int main(void){
char * content = "Helllo";
unsigned short c[] = {3,4,5,6,7,8};
unsigned short * color=c;
show(content, color);
return 0;
}