如何在C中使用字符串正确处理特殊的葡萄牙语字符,如ç,é,è等。
我发现了如何使用printf而不是scanf,fgets等等...我现在不知道如何正确地将这种字符存储在字符串中...
#include <locale.h>
int main (void){
setlocale(LC_ALL,"Portuguese");
printf("This is a example! Portuguese caracters ç é");
}
编辑:
如下所示尝试了以下代码:
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
#include <wchar.h>
int main() {
int a = 0;
setlocale(LC_ALL,"Portuguese");
wprintf(L"Exemplo de ç\n");
return 0;
}
从控制台手动进行编译:gcc -o main.exe main.c可以运行。
但是使用devc ++给我一个错误:
[错误]转换为执行字符集:无效的参数
如果我只输入:wprintf(L“ Exemplo de \ n”); (无ç)devc ++现在可以很好地编译。
因此,一旦手动进行编译,我想这与devc ++编译选项有关……有人知道吗?
编辑2:
我所有这些的主要目标是要求用户提供输入。读取该输入以保存到文件。每次程序启动时,我都会读取文件以恢复保存在文件中的值。
但是用户可以使用葡萄牙语输入ç,é,è...
最佳答案
使用宽字符串作为本地字符。以下对我有用:
#include <wchar.h>
#include <locale.h>
int main (void)
{
setlocale(LC_ALL,"pl_PL.UTF-8");
wprintf(L"This is a example! Polish characters ąśćłźó\n");
}