Astro门 2016-07-13 09:04 采纳率: 20%
浏览 5113

C++如何停止键盘循环输入

键盘输入head1之后,通过按Ctrl+z停止输入,但也无法进入head2的cin输入了。
程序需要如果改?谢谢。

#include <iostream>
#include <cstdio>
using namespace std;
template <class T>
class Node
{
public:
    Node *prev, *next;
    T value;
    Node():prev(this),next(this){}
    Node(T x):prev(NULL),next(NULL),value(x){}
    Node(T x, Node *p, Node *n):prev(p),next(n),value(x){}
};
template <class T>
int calcLength(Node<T>* head)
{
    int nLen=0;
    Node<T> *p=head->next;
    while(p!=head)
    {
        nLen++;
        p=p->next;
    }
    return nLen;
}
int main()
{
    int tmp;
    cout << "input link1:" << endl;
    Node<int> *head1 = new Node<int>();
    Node<int> *p=head1;
    while (cin >> tmp)
    {
        if(tmp==NULL)break;
        Node<int> *p = new Node<int>(tmp, head1, head1->next);
        head1->next = head1->next->prev = p;
    }
    int len1=calcLength(p);

    cout << "input link2:" << endl;
    Node<int> *head2 = new Node<int>();
    p=head2;
    while (cin >> tmp)
    {
        if(tmp==NULL)break;
        Node<int> *p = new Node<int>(tmp, head2, head2->next);
        head2->next = head2->next->prev = p;
    }
    int len2=calcLength(p);

    cout << len1 << endl;
    cout << len2 << endl;
    return 0;
}
  • 写回答

1条回答 默认 最新

  • 逗逗不长痘痘 2016-07-26 13:41
    关注

    1.用ctrl+d试试;
    2.或者修改代码
    ......
    cin>>tmp;
    while(tmp!=-1){
    .......
    cin>>tmp;
    }
    .......

    评论

报告相同问题?

悬赏问题

  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的
  • ¥15 r语言蛋白组学相关问题