cin操作员链接以简化系统输出

问题描述

下午好,

我有一些代码要求用户输入数字获取一些多项式值。第一个数字是所需输入的多项式的数量(int N),接下来的数字是指向链表中值的指针,并以系数(int&coe)和幂(int&pow)的集合形式输入。

当我运行程序时,它将每次提示用户输入必要的值。但是,如果您一次输入所有值,它将输出提示N次。有没有一种方法可以设置一个控件,该控件将识别我有多少输入,然后在计算值之前正确输出所需的提示数?

例如如果输入3,则需要3组数字,一次可以一组,也可以一次全部/如果输入3 4 9 3 0 5 7,则它将跳过“ Enter ...”消息并继续。同样,如果我为多项式请求输入5,然后输入5 8 5 3 7 6 4,则它将只打印一次消息,并且在继续执行该程序之前还有两套要输入。

代码

int N = 0;
printf("Enter N polynomials: ");
cin >>N;
Node *node = NULL;
int pow,coe;
for (int i = 0; i < N; ++i)
{
    printf("Enter coeff. & pow. of poly.: term %d separated by \" \": ",i);
    cin >> coe >> pow;
    createNode(coe,pow,&node);
}

解决方法

使用std::getline()来读取输入到std::string中的用户,然后使用std::istringstream从该字符串中读取整数,直到没有剩余为止,然后返回到{{1} },并根据需要提示输入更多整数。

std::cin