首页 > 后端开发 > C++ > 正文

如何在标准输入 (stdin) 上模拟 EOF?

DDD
发布: 2024-10-27 23:29:29
原创
704 人浏览过

How Do You Simulate EOF on Standard Input (stdin)?

确定标准输入流(stdin)的EOF

在编程中,常见的输入源是标准输入流(stdin),它从用户键盘读取输入。然而,确定用户何时完成输入数据并到达文件末尾 (EOF) 有时可能具有挑战性。

stdin 有 EOF 吗?

默认, stdin 本质上没有 EOF。这意味着从 stdin 读取的程序将无限期地继续,等待用户的更多输入。

将 EOF 添加到 stdin

如果需要手动模拟 EOF在 stdin 上,两种常见的方法是:

  • Ctrl D (UNIX): 在基于 UNIX 的系统中,按 Ctrl D 表示文件结束。
  • Ctrl Z (Windows): 在 Windows 操作系统中,按 Ctrl Z 通常表示输入结束。

示例:

以下代码片段使用 fread 从 stdin 读取数据,并使用 Ctrl D 检查 EOF:

<code class="c">#include <stdio.h>

int main() {
    char buffer[BUFSIZ];
    int c;
    
    while ((c = fread(buffer, sizeof(char), BUFSIZ, stdin)) > 0) {
        // Process input...
    }

    return 0;
}</code>
登录后复制

当用户按下 Ctrl D 时,fread() 函数将返回 -1,表示文件结束。这会触发 while 循环的结束。

注意:

需要注意的是,上述 EOF 模拟方法依赖于系统,并且可能无法在不同系统上一致地工作。所有平台。

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

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!