c++ - 我认为我的变量没有正确分配
问题描述
我是 C++ 新手,试图制作一个简单的程序来运行从 3 到 300 的素数,但似乎存在这个问题:
main.cpp:23:27: error: no match for ‘operator+’ (operand types are ‘std::string’ {aka ‘std::__cxx11::basic_string’} and ‘int’)
我的代码中有哪些错误?我知道有很多,但我感谢任何支持为我指出它们,谢谢。
int main() {
int i = 0;
int num = 0;
string prime = "";
for (i = 3; i <= 300; i++) {
int counter = 0;
for (num = i; num >= 1; num--) {
if (i % num == 0) {
counter = counter + 1;
}
}
if (counter == 2) {
prime = prime + i + " ";
}
}
cout << "Prime numbers: ";
cout << prime;
}
解决方案
仔细查看错误信息。它说,在第 23 行,您正在尝试进行加法运算 ( +
),其中左侧是 a string
,右侧是 a int
。您没有发布完整的代码,所以我不确定第 23 行的确切位置,但我怀疑是这一行:
prime = prime + i + " ";
您应该先将整数转换为字符串,而不是尝试将整数添加到字符串中。尝试这样的事情:
prime = prime + std::to_string(i) + " ";