Я работаю с Qt Creator 4.12.2 .
Есть текстовой файл myfile.txt, содержащий русские слова и вещественные числа.
При чтении информации из этого файла:
char s[256], sprev[256], sname[20], sX[20], sY[20], sZ[20];
FILE *f;
//...
strcpy(sprev,"");
f = fopen("myfile.txt","rt");
if (f!=NULL)
{
fgets(s,256,f); // считывание заголовка
fgets(s,256,f); // считывание пустой строки
while (!feof(f))
{
fgets(s,256,f);
if (strcmp(s,sprev)!=0)
{
sscanf(s,"%s %s %s %s",sname,sX,sY,sZ); // sname--русское слово, sX, sY, sZ содержат вещественные числа
// обработка строк sname, sX, SY, sZ;
strcpy(sprev,s);
}
}
fclose(f);
}
считывается строка s, в которой вместо русских символов (то, чему соответствует sname) находится какая-то абракадабра. При этом вещественные значения в sX, sY и sZ считываются правильно.
В чём причина этого? Как исправить эту ошибку?
1613 г. = 2024 г.