首页 >后端开发 >C++ >如何在标准输入流 (stdin) 中模拟文件结束符 (EOF)?

如何在标准输入流 (stdin) 中模拟文件结束符 (EOF)?

Patricia Arquette
Patricia Arquette原创
2024-10-29 01:23:02550浏览

How do I simulate an End-of-File (EOF) in the Standard Input Stream (stdin)?

标准输入流 (stdin) 中的文件结尾 (EOF)

问题:

标准输入有文件结束标记吗?如果没有,可以加一个吗?

答案:

Stdin 中的 EOF

stdin 自然没有 EOF标记。从 stdin 读取时(例如,使用 fread 或 read),循环:

while ((c = read(0, buffer, BUFSIZ)) > 0) {
    // ...
}

除非显式模拟 EOF,否则不会结束。

在 Stdin 中模拟 EOF

在 UNIX 系统中,按 Ctrl D 可以模拟 stdin 中的 EOF。在 Windows 中,按 Ctrl Z。这将使程序表现得好像已到达输入文件的末尾。

重定向输入

重定向输入时来自文件(例如,程序

额外说明

Stdin without重定向可以被认为是一个无限文件。输入结束必须通过使用 Ctrl D 或 Ctrl Z 模拟 EOF 来手动发出信号。

以上是如何在标准输入流 (stdin) 中模拟文件结束符 (EOF)?的详细内容。更多信息请关注PHP中文网其他相关文章!

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