Parameters
S | Template parameter; the type of the allocated buffer, and the type returned. Defaults to string. |
terminator | Line terminator (by default, '\n'). |
S readln(S = string)(dchar terminator = '\n') if (isSomeString!S)Read line from stdin.
This version manages its own read buffer, which means one memory allocation per call. If you are not retaining a reference to the read data, consider the readln(buf) version, which may offer better performance as it can reuse its read buffer.
S | Template parameter; the type of the allocated buffer, and the type returned. Defaults to string. |
terminator | Line terminator (by default, '\n'). |
StdioException on I/O error, or UnicodeException on Unicode conversion error.
Example: Reads stdin and writes it to stdout.
import std.stdio;
void main()
{
string line;
while ((line = readln()) !is null)
write(line);
}size_t readln(C)(ref C[] buf, dchar terminator = '\n') if (isSomeChar!C && is(Unqual!C == C) && !is(C == enum))Read line from stdin and write it to buf[], including terminating character.
This can be faster than line = readln() because you can reuse the buffer for each call. Note that reusing the buffer means that you must copy the previous contents if you wish to retain them.
size_t 0 for end of file, otherwise number of characters read
buf | Buffer used to store the resulting line data. buf is resized as necessary. |
terminator | Line terminator (by default, '\n'). Use newline for portability (unless the file was opened in text mode). |
StdioException on I/O error, or UnicodeException on Unicode conversion error.
Example: Reads stdin and writes it to stdout.
import std.stdio;
void main()
{
char[] buf;
while (readln(buf))
write(buf);
}