[英]Strange Behavior in C++ Input/Output When Parsing Large Integer Input
[英]Strange behavior when input is ^L
考虑使用“Microsoft (R) C/C++ Optimizing Compiler Version 19.28.29913 for x86”在 Windows 10 上编译的 C++ 程序
int main() {
string input;
getline(cin, input);
cout << input << "\n";
}
如果我输入“^D”(通过按 Ctrl+D 生成),程序将打印“♦”(菱形)。 如果我输入“^L”(按 Ctrl+L 产生),程序会产生“♀”(女性符号)。 到目前为止,一切都很好。
现在考虑这个类似的程序:
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产生),程序只产生一次“♀”(女性符号)。 为什么?
Ctrl-L
对应 ASCII 12
,即换页。 这可能会清除终端屏幕。
因此,如果通过打印一次来清除屏幕,那么第二次打印将再次清除屏幕并删除之前打印的所有内容。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.