我正在尝试使用Euphoria langauge读取一个简单的csv(逗号分隔的文本文件):
#! /usr/bin/eui
include get.e
integer file_id = open("myfile.csv","r")
if file_id != -1 then
sequence input_data = gets(file_id)
while sequence(input_data) do
printf(1, "The string read is: %s", {input_data})
input_data = gets(file_id)
end while
end if
printf(1, "before closing..\n")
close(file_id)
printf(1, "after closing..\n")
然而,它以文件末尾的错误结束,并且在关闭之前永远不会到达#34;声明。
type_check failure, input_data is -1
如何检测文件的结尾以便正常结束程序?我试过检查文档但找不到它。
凹凸。
答案 0 :(得分:1)
将input_data的声明更改为object,如下所示:
object input_data = gets(file_id)
如果你在Phix上运行上述代码,你也会得到
while sequence(input_data) do
^Warning: probable logic error (always true)
提示错误的原因,并且可能是无限循环。
另外,你的close(file_id)应该在if file_id!= - 1测试中。