如何在此程序中输入 EOF 字符?

Posted

技术标签:

【中文标题】如何在此程序中输入 EOF 字符?【英文标题】:How do i enter an EOF character in this program? 【发布时间】:2015-02-07 08:19:56 【问题描述】:

我正在学习 c 中的 EOF 字符并遇到了一个程序:

#include <stdio.h>
main()

int c= 0;
while((c = getchar())!=EOF)
putchar(c);

很好,它提供了正确的 o/p,但是我如何通过输入我输入的 EOF 字符退出循环,但它什么也没做。

【问题讨论】:

representing-eof-c 的可能重复项 如果你在 Linux 终端上运行这个程序 Cntrl+D 应该发送 EOF 给程序。您也可以使用管道,例如echo "My Input" | ./program 试试 Ctrl+D 或 Ctrl+Z。 我在命令提示符下运行这个 ctrl + z 有效,这意味着它是一个 EOF 字符 【参考方案1】:

stdin中刺激EOF

如果您使用的是 Windows 或 DOS,请按 CTRL+Z 或者,如果您正在运行 linux 或其他操作系统,请按 CTRL+D

【讨论】:

在某些环境下,需要输入两次CTRL-Z。通常最好在 CTRL-Z(单个或成对)或 CTRL-D 之前加上回车键,以避免最后一行输入被丢弃。【参考方案2】:

我认为没有 EOF 字符,并且 CTRL+Z 和 CTRL+D 用于通知操作系统终止。 按照这些链接它有答案 Representing EOF in C code? End of File (EOF) in C

【讨论】:

以上是关于如何在此程序中输入 EOF 字符?的主要内容,如果未能解决你的问题,请参考以下文章

有人可以解释我如何循环文本,直到输入EOF字符?还有如何使用向量?

“cat << EOF”如何在 bash 中工作?

如何在 Java 中使用 BufferedReader 读取文件末尾 (EOF)?

如何阅读直到 EOF 并打印输入的偶数/奇数?

c语言 如何读取中文字符串

C语言中如何实现多组数据输入输出?