我是C编程的新手,虽然我知道Java(或多或少)。
我不理解EOF是如何工作的,并且由于这个原因,使用诸如“while(c!= EOF){”之类的条件的每个问题都会遇到麻烦。由于我没有上传要读取的文件,而是用户输入输入,如何在完成输入测试文本/输入后触发EOF?我已经读过Mac的命令“control + D”应该终止一些东西(究竟是什么?),但这最终会冻结我笔记本电脑上的Eclipse。
如何处理这一切?
非常感谢!
答案 0 :(得分:3)
如果你的程序不是在eclipse中运行,而是在终端中运行,那么#34; control + D"实际上将终止输入并生成EOF。
如果您在终端中运行程序并将文件重定向为输入:
prog < file.in
如果您的程序读取了所有内容,您的程序将收到文件内容作为输入和EOF。
似乎&#34;控制+ D&#34;应该在eclipse中工作,但它并不是因为一个bug。 这个:Passing End of Transmission (Ctrl + D) character in Eclipse CDT console可能会为您提供更多信息,并可能提供解决方法。