c++ 程序在 windows 中将 char 与数组进行比较时关闭

c++ program shuts down in windows comparing a char to an array

我在节目中有这部分

    char size_input[5]={'1','0','4','-'};
    for (int i=0;i<6;i++){
    cin >> size_input[i];
    if(size_input[i]!=char(45)){
        valid_size_characters++;
    }else{
        i=6;
    }
}

它在 windows 和 linux 中编译都没有错误,但在 windows 中,当程序到达该部分时它就崩溃了,我不知道为什么

这是一个差一错误,因为您的数组大小为 5,而循环运行 6 次导致写出数组边界,从而导致未定义的行为。所以应该是 i<5 而不是 i<6.

也可以通过操纵循环索引 i 来避免退出循环,而您可以使用 break.