控制台打印出现奇怪显示

问题遇到的现象和发生背景

用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]);
    }
}
运行结果及报错内容

出现奇怪线条

img

我的解答思路和尝试过的方法

可能是不断设置颜色出现问题?

我想要达到的结果

不要那些白色线条

不知道是不是与你提供的代码里面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;
} 

img