C++ 为什么这个字符串操作不起作用?
代码如下:C++ 为什么这个字符串操作不起作用?,c++,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);
#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;
}
#包括
#包括
使用名称空间std;
int main()
{
弦长;
coutget 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;
}
#包括
#包括
使用名称空间std;
int main()
{
内边长;
coutget 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;
}
#包括
#包括
使用名称空间std;
int main()
{
内边长;
cout如果你真的想把一个字符串乘以一个数字,你可以重载操作符*
:
#include <cmath>
#include <iostream>
#include <cctype>
#include <string>
std::string operator*(const std::string &s,int x) {
std::string result;
try {
result = std::to_string(stoi(s)*x);
} catch(const std::invalid_argument&) {
result="UND";
}
return result;
}
std::string operator*(const std::string &s,double x) {
std::string result;
try {
result = std::to_string(stof(s)*x);
} catch(const std::invalid_argument&) {
result="UND";
}
return result;
}
int main()
{
std::string input("1");
input = input * 5.32;
std::cout << input << std::endl;
input = input * 2;
std::cout << input << std::endl;
return 0;
}
#包括
#包括
#包括
#包括
std::string运算符*(常量std::string&s,int x){
std::字符串结果;
试一试{
结果=std::to_字符串(stoi(s)*x);
}catch(const std::无效的参数&){
结果=“UND”;
}
返回结果;
}
std::string运算符*(常量std::string&s,双x){
std::字符串结果;
试一试{
结果=std::to_字符串(stof(s)*x);
}catch(const std::无效的参数&){
结果=“UND”;
}
返回结果;
}
int main()
{
std::字符串输入(“1”);
输入=输入*5.32;
std::cout如果您真的想将字符串乘以一个数字,可以重载运算符*
:
#include <cmath>
#include <iostream>
#include <cctype>
#include <string>
std::string operator*(const std::string &s,int x) {
std::string result;
try {
result = std::to_string(stoi(s)*x);
} catch(const std::invalid_argument&) {
result="UND";
}
return result;
}
std::string operator*(const std::string &s,double x) {
std::string result;
try {
result = std::to_string(stof(s)*x);
} catch(const std::invalid_argument&) {
result="UND";
}
return result;
}
int main()
{
std::string input("1");
input = input * 5.32;
std::cout << input << std::endl;
input = input * 2;
std::cout << input << std::endl;
return 0;
}
#包括
#包括
#包括
#包括
std::string运算符*(常量std::string&s,int x){
std::字符串结果;
试一试{
结果=std::to_字符串(stoi(s)*x);
}catch(const std::无效的参数&){
结果=“UND”;
}
返回结果;
}
std::string运算符*(常量std::string&s,双x){
std::字符串结果;
试一试{
结果=std::to_字符串(stof(s)*x);
}catch(const std::无效的参数&){
结果=“UND”;
}
返回结果;
}
int main()
{
std::字符串输入(“1”);
输入=输入*5.32;
std::cout如何将字符串相乘?错误:与“运算符”不匹配*表示未定义将字符串相乘。您不能只输入一个整数吗?int-sidelength;cin>>sidelength;sidelength*=4;cout您是在将数字相乘,因此数据类型需要是int
,long
,double>
,一些数字类型。如何将字符串相乘?错误:与“运算符”不匹配*表示未定义将字符串相乘。您不能只输入一个整数吗?int-sidelength;cin>>sidelength;sidelength*=4;您可以将数字相乘,因此数据类型需要是int
,long
,double
,一些数字类型。不需要顺便包括cmath。不需要顺便包括cmath。