C编程:setlocale /写入文件特殊字符

时间:2018-03-20 14:32:09

标签: c scanf special-characters setlocale

我写C程序。我想我的程序写一个文件特殊字符如“ÅÄÖ”?我需要把用户的答案放到.txt文件中。当我使用scanf时,它不起作用:文件“test.txt”包含错误的字符,例如“™Ž”“††††††”,它们被认为是“ÖÄÅöäååå”。我使用Windows10在计算机上工作。

 #include <stdio.h>
 #include <locale.h>
 main() {
    char s [30];
    setlocale(LC_ALL, "sv_SE.UTF-8");
    FILE *fp;
    fp = fopen("test.txt", "w+");
    fprintf(fp, "Test: åäö ÅÄÖ\n");   //works fine

    printf("write ÄÅÖ: ");
    scanf("%s",s);        //doesn't work if I pass special chars like ÖÄÅ
    fprintf(fp, s);
    fclose(fp);
   return 0;
 }

0 个答案:

没有答案