为什么将wchar字符串写入文件在C

时间:2018-06-08 18:21:24

标签: c file wchar-t wchar

我希望我的程序从用户获取一个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;
}

1 个答案:

答案 0 :(得分:1)

发布的代码表现得应该如此。

Georgioss-MBP:~ gsamaras$ g++ -o m main.cpp 
Georgioss-MBP:~ gsamaras$ ./m
olá
olá
Georgioss-MBP:~ gsamaras$ cat test.txt 
olá
olá

从终端执行此操作,因为问题可能是您正在从文本编辑器查看文件,其编码未设置为正确显示宽字符。