如何让我的程序分开而不是将输入之间的空格计算为整数

How do I get my program to separate not count the space between input as an integer?

本文关键字:之间 输入 空格 整数 计算 我的 程序      更新时间:2023-10-16

我正在编写一个非常简单的程序,带有do-while循环,我在输入部分中遇到一个小东西的困难。每当我提示用户输入两个数字相加时,它允许我输入它们,但程序将两个数字之间的空格计为整数,它会导致程序结束而不是不断循环。我知道我可以做到:

cin >> num1;
cin >> num2;

但我喜欢这种看起来更好的方式,想知道如何解决这个问题?我希望我已经足够清楚了。这应该是一个非常简单的修复。

#include <iostream>
using namespace std;
int main (void)
{
    int num1,
        num2,
        sum;
    char repeat;
    do
    {
        cout << "Please enter two numbers to be added together: ";
        cin >> num1, num2;
        sum = num1 + num2;
        cout << "Your sum is " << sum << endl;
        cout << "Would you like to perform this operation again? (Y/N)";
        cin >> repeat;
    }
    while ((repeat == 'Y') || (repeat == 'y'));
    return 0;
}

在单个string中传递两个数字。找到空格位置并将输入分成两部分,如示例中所示。

注意:如果使用 c++11,则可以直接使用 std::stoi(str) 转换为 int

string input;
cin >> input;
int spacePos,
    num1,
    num2;
spacePos = input.find(" ");
num1 = atoi(input.substr(0, spacePos - 1).c_str());
num2 = atoi(input.substr(spacePos + 1).c_str());
相关文章: