在测试我隔离的更大程序的一部分时,这恰好发生在我身上。原始函数将以我需要的特殊方式从字符串中删除非ascii字符,事情就是这个程序
#include <stdio.h>
#include <wchar.h>
int main(int argc, char *argv[])
{
fwprintf(stdout, L"-- Example\n");
fprintf(stdout, "-- Example\n");
return 0;
}
不会在我的linux(Fedora 22)系统上打印第二个-- Example
。虽然再次使用fwprintf()
或fprintf(stderr, "-- Example\n");
也可以。
答案 0 :(得分:1)
我认为此问题可能与文件流的广泛方向有关。如果未使用fwide()
,则使用第一个文件函数的方向来确定方向(您还可以在打开文件时设置方向,但这不适用于此处。)
一旦流宽,那么你需要使用广泛的功能;当非宽时你需要使用非宽函数。
设置方向后,无法更改。