输入后我是否有可能摆脱行尾字符?

Jim*_*utt 5 c++

char choice;
float inputa, inputb;
cin >> inputa >> choice >> inputb;

while(inputa != 0 && choice != '0' && inputb != 0)
{
    cout << " = " << calculation(inputa,choice,inputb) << endl << endl;
    cin >> inputa >> choice >> inputb;
}

system("PAUSE");
return 0;
Run Code Online (Sandbox Code Playgroud)

这就是屏​​幕的样子:

5 + 4
 = 9
Run Code Online (Sandbox Code Playgroud)

用户输入他们的输入并按下输入,这就是我猜他们到下一行的原因,但有没有办法让它显示:

5 + 4 = 9
Run Code Online (Sandbox Code Playgroud)

显示结果后,它将使用endl转到下一行,用户可以再次输入问题.

我是一个完全的初学者,如果这个问题没有多大意义,那就很抱歉.

rul*_*lof 1

您不能使用 do it,因为cin在您点击它后会打印每个字符。您必须定义自己的输入函数。

例如,您可以getchconio.h(这不是一个有效的解决方案,因为 getch 只接受一个字符。您将不得不找到另一种方法。这里重要的是理解这个想法)。

#include <iostream>
#include <conio.h>

using namespace std;

void input(float *a, char *c, float *b)
{
    char in;
    do {
        in = getch();
        cout << in;
    } while (in == ' ');
    *a = in - '0';
    do {
        in = getch();
        cout << in;
    } while (in == ' ');
    *c = in;
    do {
        in = getch();
        cout << in;
    } while (in == ' ');
    *b = in - '0';
}

int main()
{
    char choice;
    float inputa, inputb;
    cout << "Expression: ";
    input(&inputa, &choice, &inputb);
    cout << " = " << inputa+inputb << endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)