当我在 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 后,它会再次提示,再按一次它会关闭应用程序。
出于好奇,我尝试在我制作的其他一些控制台输入应用程序上执行此操作,它们都执行此操作。“更多”是什么意思?意思是?我从来没有编写过它,那为什么它在那里呢?
我能够在 Windows 上使用 g++ 重现该行为。
DOS shell 将“^”解释为某种“连续字符”。
^ 符号(也称为脱字符号或扬抑符)是批处理脚本中的转义字符。使用时,下一个字符将被解释为普通字符。
查看此处了解更多详细信息:
https://forums.tomshardware.com/threads/when-did-become-special-on-the-command-line.1071200/