首页  >  文章  >  后端开发  >  如何在 C 中读取从 cin 到 EOF 的数据而不需要显式循环?

如何在 C 中读取从 cin 到 EOF 的数据而不需要显式循环?

Barbara Streisand
Barbara Streisand原创
2024-11-18 04:18:03548浏览

How Can I Read Data from cin Until EOF in C   Without Explicit Loops?

在 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn