这是什么C在Java中,代码++线它设置stdin的模式为二进制的当量:
_setmode(_fileno(stdin),_O_BINARY);
谢谢。
这是什么C在Java中,代码++线它设置stdin的模式为二进制的当量:
_setmode(_fileno(stdin),_O_BINARY);
谢谢。
无 。 _setmode(_fileno(stdin),_O_BINARY);
在Windows上用于从文本模式切换到二进制模式,这防止\n
从与被替换\r\n
读取输入时。
System.in
是一个通用InputStream
,其read
方法返回一个字节,而不承担对输入的任何类型:
读取数据的从输入流的下一个字节。 值字节形式返回到255的范围内0的int如果没有可用的字节,因为流的末尾已到达,则该值返回-1。 此方法将阻塞,直到输入数据可用,检测到流的末尾或者抛出异常。
因此,没有必要为“禁用”文本模式,因为它从来没有“启用”摆在首位。
如果你没有合同确信,刚读的源代码,你会看到二进制模式被激活(标准输入,输出和错误)时,JVM初始化: http://hg.openjdk.java.net/jdk7u /jdk7u/hotspot/file/34aea5177b9c/src/os/windows/vm/os_windows.cpp#l3716 :
void os::win32::setmode_streams() {
_setmode(_fileno(stdin), _O_BINARY);
_setmode(_fileno(stdout), _O_BINARY);
_setmode(_fileno(stderr), _O_BINARY);
}