最近在完成编译原理的作业,简单的词法分析,所以文件操作必须使用,可是很不熟悉。在linux下完成后,因为学校机房是msvc,所以只能拿到window下再编译一次,可是问题来了。
在window下如果以文本格式打开,使用get()函数来读取一个字符,当读到空格时,就是以EOF来处理,就是文件结束。所以只能以二进制文件打开,这样只有当文件结束的时候返回一个EOF,但是如果你使用的是get(char&c),在文件结尾c一直会是换行,所以你不能使用EOF来判断文件是否结束。