提问人:user589321 提问时间:3/3/2022 最后编辑:user589321 更新时间:3/4/2022 访问量:753
Ctrl + Z 在 Windows 终端中是如何解释的?
How is Ctrl + Z interpreted in the Windows terminal?
问:
我运行了下面给出的程序。我知道建议使用代替 .while (std::getline(std::cin, inp))
while (!std::cin.eof())
#include <iostream>
#include <string>
int main() {
while (!std::cin.eof()) {
std::string next_line;
std::getline(std::cin, next_line);
if (!std::cin) {
std::cout << "failbit has been set";
return 0;
}
if (next_line.empty()) {
std::cout << "input line was empty";
return 0;
}
}
std::cout << "Success!";
}
下面我给出一些示例输入和程序响应。^Z 表示我输入了 + 。CtrlZ
在第一个示例中,我在两行中键入了两次 +,并看到了在不翻转故障位的情况下到达 EOF 的预期行为。CtrlZ
输入 1:
this is
my input
and this is the
end^Z
^Z
输出 1:
Success!
在第二个示例中,在输入单个 + 后,我能够在输入末尾添加两个额外的换行符,但是,没有切换。CtrlZeofbit
输入 2:
this is
my input
and this is the
end^Z
输出 2:
input line was empty
在第三个示例中,我看到了正在设置的故障位的预期输出。我的理解是,如果 + 是 EOF,应该设置 的 ,但还没有设置 .这是基于此处的第 2 (a) 行。在正常输入下不应给出“failbit has been set”输出。std::cin
CtrlZstd::getline
eofbit
std::cin
failbit
输入 3:
this is
my input
and this is the
end
^Z
输出 3:
failbit has been set
在这些示例中,+ 在做什么?CtrlZ
答: 暂无答案
评论
!std::cin