I am doing work in C to encrypt according to certain algorithms.
Everything is fine except if you have to use characters like ç or Ç.
Setlocale is set, and from the tests I did, the problem is no gets ().
Can anyone help me solve the problem?
This is only a function setlocale is on main function.
I have tried with printf to see where the problem might come from, so I came to the conclusion I explain above.
In other words, gets () is not assimilating the characters ç or Ç but as a symbol in another language mode.
system("cls");
FILE *nfile_1;
char tfile[2000];
printf("Opção Escolhida: (2) | Refazer Texto Do Ficheiro Pre-Conversão\n\n");
printf("____________________________________________________________________________\n\n");
printf("A mensagem atual contida no ficheiro 'mensagem.txt' será apresentada abaixo:\n\n\n\n");
nfile_1 = fopen("mensagem.txt", "r");
if(nfile_1 != NULL)
{
while(fgets(tfile, 2000, nfile_1) != NULL)
{
printf("%s\n\n", tfile);
}
}
else if(nfile_1 == NULL)
{
printf("O Ficheiro 'mensagem.txt' Não Existe!\n\n");
}
fclose(nfile_1);
printf("\n\n----------------------------------------------------------------------------\n\n");
printf("_________________________________________________________________________________\n");
printf("| |\n");
printf("| (1) | O Ficheiro Será Recriado (Perde Todos Os Dados Atuais)! |\n");
printf("| (2) | Cancelar, Quero Retornar Ao Menu! |\n");
printf("|________________________________________________________________________________|\n\n");
novaopcao();
printf("\n\n----------------------------------------------------------------------------\n\n");
if(opcao == 1)
{
system("cls");
nfile_1 = fopen("mensagem.txt", "w");
printf("Digite o Texto Para Conversão:\n\n");
fseek(stdin,0,SEEK_END);
gets(tfile); // ----------------------The ERROR----------------------------------
printf("%s\n\n", tfile);
fprintf(nfile_1 ,"%s", tfile);
fclose(nfile_1);
nfile_1 = fopen("mensagem.txt", "r");
printf("\n\n----------------------------------------------------------------------------\n\n");
printf("A mensagem atual contida no ficheiro 'mensagem.txt' será apresentada abaixo:\n\n");
while(fgets(tfile, 2000, nfile_1) != NULL)
{
printf("%s\n\n", tfile);
}
printf("\n\n----------------------------------------------------------------------------\n\n");
fclose(nfile_1);
printf("Prima a tecla enter para voltar ao menu!\n\n");
}