You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++作业代码出现std::string相关报错无法解决,寻求排查帮助

C++代码报错修复方案

核心错误原因

  • if条件判断中误用赋值运算符=代替相等比较运算符==。C++中if判断需要接收bool类型的返回值,而packageCode=AKFM101是赋值操作,返回值为赋值后的string对象,无法自动转换为bool类型,就是你遇到的类型转换报错的直接诱因。
  • 你将AKFM101、ADFM102、KDFM103声明为了未赋值的string变量,你实际要匹配的是固定的字符串常量,不需要单独声明这类变量,直接使用双引号包裹的字符串字面量做比较即可。
  • 第一个if条件末尾多写了分号;,会导致后续的赋值语句不受if条件控制,无论判断结果是否成立都会执行。

修复后可正常运行的代码

#include <iostream>
#include <string>
using namespace std;

int main()
{
    string packageCode, packageCode1, packageCode2, packageCode3, maskColour;
    int quantity_set_of_mask;
    cout << "Enter Package Code [AKFM101 , ADFM102 , KDFM103] = ";
    cin >> packageCode;
    if (packageCode == "AKFM101")
        packageCode1 = "AKFM101";

    if (packageCode == "ADFM102")
        packageCode2 = "ADFM102";

    if (packageCode == "KDFM103")
        packageCode3 = "KDFM103";
    
    cout << "Enter Quantity Set Of Mask = ";
    cin >> quantity_set_of_mask;
    cout << "Enter Mask Colour [Blue , Yellow] = ";
    cin >> maskColour;

    return 0;
}

优化建议

你可以直接复用packageCode变量做后续逻辑判断,不需要额外声明packageCode1/packageCode2/packageCode3三个变量,同时可以用else if代替多个独立if,减少不必要的重复判断。

内容的提问来源于stack exchange,提问作者A_H

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 07:45:03