我希望我的程序从用户那里获取一个 wchar 字符串并将其打印到文件中,但即使它正确地将字符串打印到命令提示符,当涉及到文件时,它只打印 ascii 字符,任何其他字符字符打印不正确。
示例: 它不是写“olá”,而是打印“ol”
#include <stdio.h>
#include <wchar.h>
#include <locale.h>
int main(){
FILE *pst = fopen("C:\\teste1.txt","a");
wchar_t word[100];
fgetws(word,20,stdin);
fputws(word,stdout);
fputws(word,pst);
fwprintf(pst,word);
return 0;
}
最佳答案
发布的代码表现应有。
Georgioss-MBP:~ gsamaras$ g++ -o m main.cpp
Georgioss-MBP:~ gsamaras$ ./m
olá
olá
Georgioss-MBP:~ gsamaras$ cat test.txt
olá
olá
从终端执行此操作,因为问题可能是您正在从文本编辑器查看文件,而文本编辑器的编码未设置为正确显示宽字符。
关于c - 为什么将 wchar 字符串写入文件在 C 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50766404/