c - 为什么将 wchar 字符串写入文件在 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á
从终端执行此操作,因为问题可能是您正在从文本编辑器查看文件,其编码未设置为正确显示宽字符。
推荐阅读
- javascript - 如何在 React App 中测试基于 URLSearchParams 的条件渲染?
- html - 更改自定义 svg 的光标不起作用
- reactjs - 通过 css 使用 Paper 高程道具?
- google-apps-script - GAS Webapp/Dialog 返回意外结果
- google-colaboratory - 是否可以将 ipywidgets 中的值存储到像 Google colab Form 这样的单元格代码中
- python - Python,将文件内容打印为矩阵
- docker - Hadoop。如何避免由于 Docker 自动命名而导致的 worker 文件
- python - 如何 np.save 从输入路径到输出路径?
- javascript - 如何等待在 Selenium 中为 Angular 完成所有 http 调用?
- python - 用十六进制制表打印值