Jon*_*oni 24
您可以使用 setmode(fileno(stdout), O_BINARY)
如果你想让它与Linux兼容,请将它包装在ifdef中.
另请参阅:https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/setmode?view = vs-2017
你可以做类似的事情(这是一种跨平台):
FILE *const in = fdopen(dup(fileno(stdin)), "rb");
FILE *const out = fdopen(dup(fileno(stdout)), "wb");
/* ... */
fclose(in);
fclose(out);
Run Code Online (Sandbox Code Playgroud)
或者你可以使用write()和read()系统直接调用fileno(stdin)和fileno(stdout).这些系统调用在较低级别运行,不进行任何转换.但是他们也没有从FILE流中获得的缓冲.