我正在研究C,现在我开始了解如何处理文件,即:如何写入,读取和删除数据。
无论我遇到什么问题,我的程序都将使用重音符号和特殊字符,因此我使用自己的语言设置了setlocation,以便它们可以正常工作。
但是最终会导致两个不一致之处:
当我将带有重音的单词保存在文件中并尝试在屏幕上显示它们时,返回几个奇怪的字符。请注意,printf中带重音的单词会正常显示。
当我删除setlocation时,插入文件中的重音词会完美显示,但不会显示带有重音的printf。
我的代码:
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
int main() {
setlocale(LC_ALL, "Portuguese");
FILE *my_file;
char name[90];
fopen_s(&my_file, "names.txt", "a");
printf("Digite uma palavra acentuada [não/ação/maldição]: ");
scanf_s("%[^\n]", name, 90);
fputs(name, my_file);
fputs("\n", my_file);
fclose(my_file);
fopen_s(&my_file, "names.txt", "r");
int i;
char *result;
char lines[100];
i = 1;
while (!feof(my_file))
{
result = fgets(lines, 100, my_file);
if (result)
printf("%s", lines);
i++;
}
fclose(my_file);
return 0;
}
有关如何解决此问题的任何建议?谢谢。