2014-06-15 69 views
1

我正在学习D,并且在导入标准库时遇到了一些困难。未定义的标识符fwritefln

import std.stdio; 

void main(string[] args) { 
    fwritefln(stderr, "foo"); 
} 

与以下简称 “GDC foo.d” 编译产生以下错误

foo.d:4: error: undefined identifier fwritefln, did you mean template writefln(T...)(T args)? 

我想不出什么我做错了。我尝试过的大多数库导入,我没有遇到任何困难,但由于某种原因,这个“fwritefln”是一个问题。

回答

4

试试这个:

stderr.writefln(...); 

这是D's等效到C的fprintf(stderr, ...)

每OutputStream中树立writef的*可用于发送格式化字符串的方法。更多关于它的信息请看:http://dlang.org/phobos/std_stream.html#.OutputStream.writef

+0

它看起来像我一直在看一些错误的文档。由于我不熟悉该语言,因此我想我对一些不兼容的实现并不熟悉。也许D版本,也许是stdlib? http://www.docwiki.net/view.php?pageid=144 –

+0

这只是D1的文档。当前D版本是D2。自那以后,很多东西都变了。查看新的D网站:http://dlang.org/和文档到新的“std.stdio”:http://dlang.org/phobos/std_stdio.html#.File.writefln –

1

就像错误已经表明改变“fwritefln”到“writefln”。

这似乎是一个错误的拼写错误,在你身边。

还有就是std.stdio模块中没有fwritefln: http://dlang.org/phobos/std_stdio.html

+1

fwritefln与writefln不一样。第一个写入任意流,而第二个只写入STDOUT。 –