Эквивалентная функциональность Chapel для функции C fgets

Какой код Chapel эквивалентен функции fgets языка C?

`fgets(buffer, sizeof(buffer), stdin)`

Приведенный выше вызов fgets считывает данные из стандартного ввода до тех пор, пока не встретится символ новой строки. Функция Chapel readln прекращает чтение, когда встречается пробел. Я хочу, чтобы readln читалось до тех пор, пока не встретится символ новой строки. Есть iostringformat.toend, который кажется решением, но как мне заставить stdin вести себя так, как если бы он был включен?


person tmacd8    schedule 12.02.2019    source источник


Ответы (1)


Используйте readline вместо readln. См. https://chapel-lang.org/docs/modules/standard/IO.html#IO.channel.readline

Попробуйте, например, эту программу:

config const fname = "test.txt";
var r = openreader(fname);
var line:string;
while r.readline(line) {
  write("I just read: ", line);
}
person mppf    schedule 12.02.2019
comment
Вероятно, нам следует указать в документации для readln другой метод, кто-нибудь хочет сделать обновление документации для этого? - person mppf; 12.02.2019