为什么将 wchar 字符串写入文件在 C 中不起作用
Why writing wchar string to file doesn't work in C
我希望我的程序从用户那里获取一个 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á
从终端执行此操作,因为问题可能是您正在从文本编辑器查看文件,其编码未设置为正确显示宽字符。
我希望我的程序从用户那里获取一个 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á
从终端执行此操作,因为问题可能是您正在从文本编辑器查看文件,其编码未设置为正确显示宽字符。