在 C 中不循环地从 Cin 读取数据直到 EOF
寻求一种有效的方法从用户输入中读取数据直到文件末尾( EOF)是 C 编程中的常见任务。然而,不使用循环遍历数据带来了挑战。
一种潜在的方法是利用 cin.get(input, ' ')。但是,此方法可能并不理想,因为它会在第一次出现 EOF 或空字符 (' ') 时终止读取,以较早遇到的为准。
对于全面且可靠的方法,使用循环是受到推崇的。 std::getline() 函数提供了一个方便的解决方案:
std::string line; while (std::getline(std::cin, line)) { std::cout << line << std::endl; }
getline() 函数逐行读取输入,默认以换行符终止。您可以指定替代终止字符,但直接定位 EOF 是不可行的,因为它不代表字符本身。
通过串联使用循环和 getline(),您可以有效地从标准输入读取数据,直到 EOF遇到。这种方法提供了一种简单可靠的机制来处理任意数量的数据,而不需要额外的逻辑来检查 EOF。
以上是如何在 C 中读取从 cin 到 EOF 的数据而不需要显式循环?的详细内容。更多信息请关注PHP中文网其他相关文章!