C++ 尝试将字符串元素与循环和索引进行比较,但索引不会递增

C++ 尝试将字符串元素与循环和索引进行比较,但索引不会递增,c++,string,C++,String,我正在尝试为Euler项目制作一个Su-Doku解算器。比较字符串元素时遇到问题。我的索引为k的第二个循环只发生一次,而不是九次。如果我用if语句删除代码,它会很好地循环。有人知道为什么吗?尝试访问我的字符串会使它停止 puzzle是一个向量,reference\u string是一个字符串=“123456789” for(int i=0;i!=9;i++){ cout您需要将k=8更改为k==8,或更安全的8==k。您不是在执行比较,而是在执行改变循环计数器的赋值,这样循环条件只需一次迭代即可

我正在尝试为Euler项目制作一个Su-Doku解算器。比较字符串元素时遇到问题。我的索引为k的第二个循环只发生一次,而不是九次。如果我用if语句删除代码,它会很好地循环。有人知道为什么吗?尝试访问我的字符串会使它停止

puzzle
是一个向量,
reference\u string
是一个字符串
=“123456789”

for(int i=0;i!=9;i++){

cout您需要将
k=8
更改为
k==8
,或更安全的
8==k
。您不是在执行比较,而是在执行改变循环计数器的赋值,这样循环条件只需一次迭代即可满足。

您需要将
k=8
更改为
k==8
,或更安全的
8==k
。您不是在执行比较,而是在执行改变循环计数器的赋值,以便在一次迭代后满足循环条件。

您需要将
k=8
更改为
k==8
,或者更安全的
8==k
。您不是在执行比较,而是在执行一个使循环条件满足的赋值rs循环计数器,以便循环条件在一次迭代后得到满足。

您需要将
k=8
更改为
k==8
,或更安全的
8==k
。您不是在执行比较,而是在执行一个赋值,该赋值改变循环计数器,以便循环条件在一次迭代后得到满足。

吃谢谢!我错过了。我刚刚发现了条件中第二行的另一个错误。那应该是一个I。我想我累了,因为我已经搜索了一段时间了。但它现在工作正常。:)你的编译器是否试图警告你错误的赋值?一些编译器确实警告过sus如果您在
if
语句中执行赋值,则会出现明显的赋值(这样做是有正当理由的,这就是为什么它只是一个警告而不是错误,但我不喜欢依赖于此的代码)。噢,太感谢了!我错过了。我刚刚发现条件中第二行的另一个错误。那应该是一个I。我想我很累,因为我已经搜索了一段时间了。但它现在正按照我的要求工作。:)你的编译器是否试图警告你错误的赋值?一些编译器确实警告过如果您在
if
语句中执行赋值,则这不是可疑赋值(这样做是有正当理由的,这就是为什么它只是一个警告而不是错误,但我不喜欢依赖于此的代码)。噢,太感谢了!我错过了。我刚刚发现条件中第二行的另一个错误。那应该是一个I。我想我很累,因为我已经搜索了一段时间了。但它现在正按照我的要求工作。:)你的编译器是否试图警告你错误的赋值?一些编译器确实警告过如果您在
if
语句中执行赋值,则这不是可疑赋值(这样做是有正当理由的,这就是为什么它只是一个警告而不是错误,但我不喜欢依赖于此的代码)。噢,太感谢了!我错过了。我刚刚发现条件中第二行的另一个错误。那应该是一个I。我想我很累,因为我已经搜索了一段时间了。但它现在正按照我的要求工作。:)你的编译器是否试图警告你错误的赋值?一些编译器确实警告过如果您在
if
语句中执行赋值,则这不是可疑赋值(这样做是有正当理由的,这就是为什么它只是一个警告而不是错误,但我不喜欢依赖于此的代码)。
for (int i = 0; i != 9; i++){
    cout << "loop 1" << endl;
    for (int k = 0; k != 9; k++) {

        if (reference_string[i] == puzzle[row_index][k] || 
            reference_string[k] == puzzle[col_index][k] || 
             reference_string[i] == puzzle[box_index][k] ){
            possible_answers.push_back(0);
        }

        else if ( k = 8 ){
            possible_answers.push_back(1);
        }
    }
}