首页 > 解决方案 > 为什么这个字符串操作不起作用?

问题描述

这是代码:

#include <cmath>
#include <iostream>

using namespace std;

int main()
{
    string sidelength;
    cout << "Perimeter of Square" << endl;
    cout << "Enter length of one side: ";
    getline(cin, sidelength);
    cout << sidelength * 4 << endl;

    return 0;
}

运行时,这是错误消息:

错误:'operator*' 不匹配(操作数类型是 'std::__cxx11::string {aka std::__cxx11::basic_string<char>}' 和 'int')|

如何修复此错误并使程序正常运行?

标签: c++

解决方案


get line 函数将字符串作为它的第二个参数,但您希望获取整数/双精度/浮点数作为输入。所以不要使用getline。只需在下面运行此代码,它将解决您的问题。

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

int main()
{
    int sidelength;
    cout << "Perimeter of Square" << endl;
    cout << "Enter length of one side: ";
    cin >> sidelength;
    cout << sidelength * 4 << endl;
    return 0;
}

推荐阅读