Почему запись строки wchar в файл не работает в C - PullRequest
0 голосов
/ 08 июня 2018

Я хочу, чтобы моя программа взяла строку 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 голосов
/ 08 июня 2018

Отправленный код ведет себя так, как и должен.

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

Сделайте это с терминала, поскольку проблема может заключаться в том, что вы просматриваете файл в текстовом редакторе, кодировка которого не настроена на широкое отображение.символы правильно.

...