我得到一个错误:赋值的左操作数需要左值 我是C++新手,我正在制作一个程序来检查汽车执照。 不要拿这段代码开玩笑,我已经知道这是XD有史以来最低效的代码。问题是,我想使用if语句(在代码末尾)来验证每个字符串索引是否都是它应该的样子。问题是,当我试图运行这个程序时,在最后一个if语句所在的行中收到了错误消息“作为赋值的左操作数需要左值”。我该怎么办 #include <iostream> #include <string> using namespace std; int main() { string s; getline(cin,s); bool check; bool check1; bool check2; bool check3; bool check4; bool check5; bool check6; bool check7; bool check8; for (int i = 0; i < 1; i++){ if (s[0] >= 'A' && s[0] <= 'Z'){ // cout << "Dobra tablica" << endl; check = true; } else { // cout << "Losa tablica" << endl; check = false; } return check; } for (int q = 0; q < 1; q++){ if (s[1] >= 'A' && s[1] <= 'Z'){ // cout << "Dobra tablica" << endl; check1 = true; } else { // cout << "Losa tablica" << endl; check1 = false; } return check1; } for (int w = 0; w < 1; w++){ if (s[2] == '-'){ // cout << "Dobra tablica" << endl; check2 = true; } else { // cout << "Losa tablica" << endl; check2 = false; } return check2; } for (int e = 0; e < 1; e++){ if (isdigit(s[3])){ // cout << "Dobra tablica" << endl; check3 = true; } else { // cout << "Losa tablica" << endl; check3 = false; } return check3; } for (int e = 0; e < 1; e++){ if (isdigit(s[4])){ // cout << "Dobra tablica" << endl; check4 = true; } else { // cout << "Losa tablica" << endl; check4 = false; } return check4; } for (int e = 0; e < 1; e++){ if (isdigit(s[5])){ // cout << "Dobra tablica" << endl; check5 = true; } else { // cout << "Losa tablica" << endl; check5 = false; } return check5; } for (int r = 0; r < 1; r++){ if (s[6] == '-'){ // cout << "Dobra tablica" << endl; check6 = true; }else { // cout << "Losa tablica" << endl; check6 = false; } return check6; } for (int u = 0; u < 1; u++){ if (s[7] >= 'A' && s[7] <= 'Z'){ // cout << "Dobra tablica" << endl; check7 = true; } else { // cout << "Losa tablica" << endl; check7 = false; } return check7; } for (int z = 0; z < 1; z++){ if (s[8] >= 'A' && s[8] <= 'Z'){ /*cout << "Dobra tablica" << endl;*/ check8 = true; } else { // cout << "Losa tablica" << endl; check8 = false; } return check8; } if(check = true || check1 = true || check2 = true || check3 = true || check4 = true || check5 = true || check6 = true || check7 = true || check8 = true){ // This line of code have an error: "error: lvalue required as left operand of assignment" cout << "Dobra tablica"; } else { cout << "Losa tablica"; } } #包括 #包括 使用名称空间std; int main(){ 字符串s; getline(cin,s),; 布尔检查; 布尔检查1; 布尔检查2; 布尔检查3; 布尔检查4; 布尔检查5; 布尔检查6; bool-check7; 布尔检查8; 对于(int i=0;i='A'&&s[0]

我得到一个错误:赋值的左操作数需要左值 我是C++新手,我正在制作一个程序来检查汽车执照。 不要拿这段代码开玩笑,我已经知道这是XD有史以来最低效的代码。问题是,我想使用if语句(在代码末尾)来验证每个字符串索引是否都是它应该的样子。问题是,当我试图运行这个程序时,在最后一个if语句所在的行中收到了错误消息“作为赋值的左操作数需要左值”。我该怎么办 #include <iostream> #include <string> using namespace std; int main() { string s; getline(cin,s); bool check; bool check1; bool check2; bool check3; bool check4; bool check5; bool check6; bool check7; bool check8; for (int i = 0; i < 1; i++){ if (s[0] >= 'A' && s[0] <= 'Z'){ // cout << "Dobra tablica" << endl; check = true; } else { // cout << "Losa tablica" << endl; check = false; } return check; } for (int q = 0; q < 1; q++){ if (s[1] >= 'A' && s[1] <= 'Z'){ // cout << "Dobra tablica" << endl; check1 = true; } else { // cout << "Losa tablica" << endl; check1 = false; } return check1; } for (int w = 0; w < 1; w++){ if (s[2] == '-'){ // cout << "Dobra tablica" << endl; check2 = true; } else { // cout << "Losa tablica" << endl; check2 = false; } return check2; } for (int e = 0; e < 1; e++){ if (isdigit(s[3])){ // cout << "Dobra tablica" << endl; check3 = true; } else { // cout << "Losa tablica" << endl; check3 = false; } return check3; } for (int e = 0; e < 1; e++){ if (isdigit(s[4])){ // cout << "Dobra tablica" << endl; check4 = true; } else { // cout << "Losa tablica" << endl; check4 = false; } return check4; } for (int e = 0; e < 1; e++){ if (isdigit(s[5])){ // cout << "Dobra tablica" << endl; check5 = true; } else { // cout << "Losa tablica" << endl; check5 = false; } return check5; } for (int r = 0; r < 1; r++){ if (s[6] == '-'){ // cout << "Dobra tablica" << endl; check6 = true; }else { // cout << "Losa tablica" << endl; check6 = false; } return check6; } for (int u = 0; u < 1; u++){ if (s[7] >= 'A' && s[7] <= 'Z'){ // cout << "Dobra tablica" << endl; check7 = true; } else { // cout << "Losa tablica" << endl; check7 = false; } return check7; } for (int z = 0; z < 1; z++){ if (s[8] >= 'A' && s[8] <= 'Z'){ /*cout << "Dobra tablica" << endl;*/ check8 = true; } else { // cout << "Losa tablica" << endl; check8 = false; } return check8; } if(check = true || check1 = true || check2 = true || check3 = true || check4 = true || check5 = true || check6 = true || check7 = true || check8 = true){ // This line of code have an error: "error: lvalue required as left operand of assignment" cout << "Dobra tablica"; } else { cout << "Losa tablica"; } } #包括 #包括 使用名称空间std; int main(){ 字符串s; getline(cin,s),; 布尔检查; 布尔检查1; 布尔检查2; 布尔检查3; 布尔检查4; 布尔检查5; 布尔检查6; bool-check7; 布尔检查8; 对于(int i=0;i='A'&&s[0],c++,C++,,则指定值“=”,而不是检查布尔值“=” 没有初始化任何check*变量,因此它将弹出警告。 您应该将它们初始化为false 最后,与其执行if(check==true)不如使用以下语法if(check) 它做同样的事情,但它是一种更轻的语法(而且您本可以避免赋值错误)。检查相等性使用“==”;“=”是赋值。如果你准确地指出错误消息报告所针对的程序的哪一行,而不是期望每个人都检查整个程序,寻找实际问题,那么更有可能有人会帮助你。为什么你不在创建变量时初始化它们呢?一个很好的方法是我们鼓励人们取笑

,则指定值“=”,而不是检查布尔值“=”

没有初始化任何check*变量,因此它将弹出警告。 您应该将它们初始化为false

最后,与其执行
if(check==true)
不如使用以下语法
if(check)

它做同样的事情,但它是一种更轻的语法(而且您本可以避免赋值错误)。

检查相等性使用“==”;“=”是赋值。如果你准确地指出错误消息报告所针对的程序的哪一行,而不是期望每个人都检查整个程序,寻找实际问题,那么更有可能有人会帮助你。为什么你不在创建变量时初始化它们呢?一个很好的方法是我们鼓励人们取笑你的代码是要求他们不要这样做。:)阻止人们取笑你的代码的一个好方法是不要过度使用(请参阅)。你可以用类似“
//设置上述变量的一些代码”这样的注释替换
for
循环。您会遇到相同的编译器错误,并且自愿帮助您的人的阅读/工作会少得多。
If(check=true)
将对大多数具有适当编译器设置的编译器生成警告。