Почему вместо русских символов и чисел выводится непонятные символы в таблице?
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <locale.h>
int main() {
setlocale(LC_ALL, "Rus");
setlocale(LC_NUMERIC, "C");
char name1[7], name2[9], name3[12];
char initials1[5], initials2[5], initials3[5];
unsigned short year1, year2, year3;
float number1, number2, number3;
printf("1. Введите: фамилию, инициалы, год рожд., оклад > ");
scanf("%s %s %hu %f", name1, initials1, &year1, &number1);
printf("\n2. Введите: фамилию, инициалы, год рожд., оклад > ");
scanf("%s %s %hu %f", name2, initials2, &year2, &number2);
printf("\n3. Введите: фамилию, инициалы, год рожд., оклад > ");
scanf("%s %s %hu %f", name3, initials3, &year3, &number3);
printf("\n----------------------------------------------\n");
printf("\n|Отдел кадров |\n");
printf("\n----------------------------------------------\n");
printf("\n|Фамилия |Инициалы |Год рожд |Оклад |\n");
printf("\n----------------------------------------------\n");
printf("|%-11s|%-13s|%-10.9hu|%5f|", name1, initials1, &year1, &number1);
printf("\n----------------------------------------------\n");
printf("|%-11s|%-13s|%-10.9hu|%5f|", name2, initials2, &year2, &number2);
printf("\n----------------------------------------------\n");
printf("|%-11s|%-13s|%-10.9hu|%5f|", name3, initials3, &year3, &number3);
printf("\n----------------------------------------------\n");
}
Данные, которые ввожу с клавиатуры и непонятные символы в фото - [1]: https://i.stack.imgur.com/XlDMy.png
Ответы (1 шт):
Автор решения: bocman THN
→ Ссылка
Это связано с кодировкой консоли. Перед тем как считать с клавиатуры текст смени кодировку.
SetConsoleCP(1251);
scanf("%s %s %hu %f", name1, initials1, &year1, &number1);
SetConsoleCP(866);
или в начале попробуй поставить
setlocale(LC_ALL, "utf-8");
Что-то из этого должно сработать