首页 > 解决方案 > 为什么 cin >> ws 使程序在末尾有空格时不终止?

问题描述

我制作了这个程序来看看“ws”是如何工作的

    char character;
    
    while (true){    
        character = cin.get();         
        cout << character;        
        if (cin.peek() == '\n') break;        
        cin >> ws;
    }
    cout << endl;

该程序使用输入(我使用“_”表示空格),例如:A_________B__________C

结果:ABC

但是,如果我在末尾放置一个空格(例如:A_____________B__________C_),程序将永远不会结束,并且在调试时我发现 (cin >> ws) 行永远不会结束。我的问题是为什么会这样。

标签: c++c++11

解决方案


推荐阅读