c++ - 为什么这个字符串操作不起作用?
问题描述
这是代码:
#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')|
如何修复此错误并使程序正常运行?
解决方案
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;
}