“更多的?” 在 C++ 中接受控制台输入时

avi*_*nac 4 c++

当我在 C++ 中编程时,我注意到在接受控制台输入时出现了一些奇怪的行为。让我解释。

#include <iostream>

int main(int argc, char *argv[]) {
    if (argc == 1) {
        std::cout << "Hello!\n";
    }

    if (argc >= 2) {
    }
}
Run Code Online (Sandbox Code Playgroud)

非常简单的程序,对吧?现在,当我输入“programName ^”时,我收到一条神秘的消息,说“更多?” 在控制台窗口上。按 Enter 后,它会再次提示,再按一次它会关闭应用程序。

出于好奇,我尝试在我制作的其他一些控制台输入应用程序上执行此操作,它们都执行此操作。“更多”是什么意思?意思是?我从来没有编写过它,那为什么它在那里呢?

pau*_*sm4 6

我能够在 Windows 上使用 g++ 重现该行为。

DOS shell 将“^”解释为某种“连续字符”。

^ 符号(也称为脱字符号或扬抑符)是批处理脚本中的转义字符。使用时,下一个字符将被解释为普通字符。

查看此处了解更多详细信息:

https://forums.tomshardware.com/threads/when-did-become-special-on-the-command-line.1071200/