使用SWI序言从txt文件读取

时间:2019-05-29 17:19:20

标签: prolog

我写了一个程序来读取txt文件中的输入:

read_input(File, N, K, C) :-
    open(File, read, Stream),
    read_line(Stream, [N, K]),
    read_line(Stream, C).

read_line(Stream, L) :-
    read_line_to_codes(Stream, Line),
    atom_codes(Atom, Line),
    atomic_list_concat(Atoms, ' ', Atom),
    maplist(atom_number, Atoms, L).

这是写在名为test的txt文件中的内容,该文件与我的程序位于同一目录中。

10 3 
1 3 1 3 1 3 3 2 2 1

因此,使用此查询:

read_input('c1.txt', N, K, C).

我希望结果是:

 N = 10,
  K = 3,
  C = [1, 3, 1, 3, 1, 3, 3, 2, 2|...].

无论如何,结果是false。我还尝试放置整个路径,而不只是'test.txt',它仍然是false。如果我输入了错误的路径或txt的名称,错误会产生一个错误,指出找不到文件,因此假设它正确访问了txt文件。仍然失败并产生了false. 我在做什么错了?

0 个答案:

没有答案