2014-06-15 67 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。 –