d按美标打印字节
import std.stdio;
import std.string;
void main() {
ubyte[8] b1 = [0x68, 0x65, 0x6C, 0x6C, 0x6F, 0x0A, 0x00, 0x00];
ubyte[8] b2 = [0x68, 0x65, 0x6C, 0x6C, 0x6F, 0x0A, 0x0A, 0x0A];
/* "hello\n\0\0" */
char[] s1 = fromStringz(cast(char*)b1.ptr);
writefln("'%s, world'", s1.strip);
char[] s2 = cast(char[])b2[0 .. $];
writefln("'%s, world'", s2.strip);
}
或这样:
import std.algorithm : until;
writefln("got '%s' from '%s:%d'", (cast(char[])ioCtx.buf[]).until('\n'), client.addr, client.port);
并未保存缓冲的切片.如果只想搜索\n一次并用它,得用切至该符的算法.
浙公网安备 33010602011771号