gpt4 book ai didi

c++ - 该代码应该返回不带空格的字符串,但它返回字符串直到第一个空格字符

转载 作者:太空狗 更新时间:2023-10-29 20:46:58 26 4
gpt4 key购买 nike

我正在制作一个控制台计算器,我想删除用户在使用该程序时可能输入的所有空格。这是代码:

#include <iostream>
#include <string>
#include <algorithm>

using namespace std;

int main()
{
string str;
std::cout<<"Enter sum): ";
cin>>str;
str.erase(std::remove_if(str.begin(), str.end(), (int(*)(int))isspace), str.end());
cout<<str;
system("pause");
return 0;
}

如果我输入 2 + 2 =,输出应该是 2+2=但输出是:2我在这里使用了错误的功能吗?

最佳答案

问题在于获取用户输入,而不是去除空格。

删除空格的代码是正确的,你可以做到see for yourself on IDEone .

问题是运算符 std::istream::operator >> 在遇到第一个空白字符时停止读取输入。您应该改用其他函数(例如 getLine)。

关于c++ - 该代码应该返回不带空格的字符串,但它返回字符串直到第一个空格字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6718848/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com