2014-06-09 4 views
2

내가 윈도우 다트 VM에서 * 괜찬아 라인 끝과 출력 텍스트에 노력하고, 그것을 \ 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를 사용하여 stdout을 이진 모드로 전환 할 수 있습니다 (how C output LF to stdout without being changed to CR LF? 참조).

Dart에서는 해당 API 함수에 액세스 할 수 없습니다.

나는 dartbug.com/new에서 그 요청을 제기 할 것입니다.

+0

감사! http://dartbug.com/19334에 제출 –