c++ - 我可以在输入后去掉行尾字符吗?

标签 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;

这是屏幕的样子:

5 + 4
 = 9

用户提供他们的输入并按下回车键,所以我猜这就是将他们带到下一行的原因,但是有没有办法让它显示:

5 + 4 = 9

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

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

最佳答案

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

例如,您可以在 conio.h 中使用 getch(这不是一个有效的解决方案,因为 getch 只接受一个字符。您将不得不 fin另一种方式。这里的重点是理解想法)。

#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;
}

关于c++ - 我可以在输入后去掉行尾字符吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20790520/

相关文章:

C++ 单例与全局静态对象

c++ - 为什么在 STL 中允许未定义的行为?

c++ - id3lib 提取标签

c++ - 声明和访问在构造函数 c++ 中启动的二维 vector

c++ - 如何从连接的控制台执行命令

c++ - 我怎么知道有人在我的计算机上附加了可移动磁盘?

c++ - 使二维数组中的所有元素在 C++ 中成为某个非零值的快速方法

c++ - 错误 : cannot compile this unexpected cast lvalue yet

c++ - 通过指向类的指针调用类函数

c++ - Monte Carlo Sims - 请检查我的算法