Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/146.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 为什么这个字符串操作不起作用?_C++ - Fatal编程技术网

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。