2014-06-09 50 views
2

我想從一個窗口鏢VM * nix的行結束輸出文本,它似乎總是與\ r \ n替換成\ n:Dart:在Windows上打印換行沒有回車?

#!/usr/bin/env dart 

# foo.dart 

import 'dart:io'; 

main() { 
    stdout.write('a\nb\nc\n'); 
    stdout.write('a\x0Ab\x0Ac\x0A'); 
} 

這是我得到的cygwin運行時

$ foo.dart | foo.txt 
$ cat -A foo.txt 
a^M$ 
b^M$ 
c^M$ 
a^M$ 
b^M$ 
c^M$ 

有沒有辦法輸出文本沒有自動回車插入?

回答

4

問題在於默認情況下stdout在文本模式下打開,其中Windows本身會自動將LF轉換爲CRLF。

如果是C/C++,一般來說您可以使用_setmode將標準輸出轉換爲二進制模式(請參閱how C output LF to stdout without being changed to CR LF?)。

在Dart中,您無權訪問該API函數。

我會在dartbug.com/new上提出要求。

+0

謝謝!歸檔http://dartbug.com/19334 –