📅  最后修改于: 2023-12-03 15:28:18.797000             🧑  作者: Mango
在C++中,我们通常会需要运行程序直到用户输入ctrl-d(在Windows上是ctrl-z)来结束输入。这种技巧在处理文件输入、命令行参数等方面非常有用。
下面的代码片段演示了如何在C++中实现这个功能。
#include <iostream>
#include <string>
int main() {
std::string line;
// 重复获取用户输入
while (std::getline(std::cin, line)) {
// 处理输入
std::cout << "Input: " << line << std::endl;
}
// 用户输入了 Ctrl-D,结束程序
std::cout << "Exiting..." << std::endl;
return 0;
}
这个程序将在用户输入ctrl-d时退出,并将每行输入输出到控制台。
另一种实现方式是使用std::cin.eof()
函数来检查输入是否已经结束。
#include <iostream>
#include <string>
int main() {
std::string line;
// 重复获取用户输入
while (!std::cin.eof()) {
std::getline(std::cin, line);
// 处理输入
std::cout << "Input: " << line << std::endl;
}
// 用户输入了 Ctrl-D,结束程序
std::cout << "Exiting..." << std::endl;
return 0;
}
这个程序将对std::cin.eof()
进行轮询来查看用户是否已经输入ctrl-d。
无论你选择哪种实现方式,都应该养成好的编程习惯,并在输入结束时进行清理操作。