首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >输入为^L时的奇怪行为

输入为^L时的奇怪行为
EN

Stack Overflow用户
提问于 2021-03-24 16:18:39
回答 1查看 33关注 0票数 1

考虑使用"Microsoft / C++优化编译器版本19.28.29913 for x86“在Windows 10上编译的这个x86程序

代码语言:javascript
复制
int main() {
    string input;
    getline(cin, input);
    cout << input << "\n";
}

如果输入"^D“(按Ctrl+D生成),程序将打印"♦”(钻石)。如果输入"^L“(按Ctrl+L生成),程序将生成"♀”(女性符号)。到现在为止还好。

现在考虑一下类似的程序:

代码语言:javascript
复制
int main() {
    string input;
    getline(cin, input);

    cout << input << "\n";

    istringstream sin{ input };
    char token;
    sin >> token;
    cout << token << "\n";
}

如果输入"^D“(按下Ctrl+D生成),程序将打印"♦”(钻石)两次。但是,如果我输入"^L“(按下Ctrl+L生成),程序只生成"♀”(女性符号),只有一次。为什么?

EN

回答 1

Stack Overflow用户

发布于 2021-03-24 16:51:33

Ctrl-L对应于ASCII 12,它是表单提要。这可能会清除终端屏幕。

因此,如果屏幕通过打印一次而被清除,那么第二次打印它将再次清除屏幕并删除以前打印的任何内容。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66785152

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档