2

Windows dart vm から *nix 行末でテキストを出力しようとしていますが、常に \n を \r\n に置き換えているようです:

#!/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

1 に答える 1

4

問題は、stdout がデフォルトでテキスト モードで開かれ、Windows 自体が LF を CRLF に自動的に変換することです。

一般的に言えば、C/C++ であれば、_setmode を使用して stdout をバイナリ モードに切り替えることができます ( C が CR LF に変更されずに LF を stdout に出力する方法を参照してください)。

Dart では、その API 関数にアクセスできません。

dartbug.com/new でそのリクエストを提出します。

于 2014-06-10T01:05:46.130 に答える