Помогите с лабой пожалуйста: учим С, и эта прога должна выводить ровную табличку в консоли, но у меня вместо русских символов оркские и сама таблица кривая (может из-за оркских символов). Вот код, запускаю через Visual Studio 2017:
#include "stdafx.h"
#include "stdio.h"
#include "iostream"
#include "locale.h"
int main()
{
char computer1[10], computer2[10], computer3[10];
char type1, type2, type3, ram1, ram2, ram3;
float frq1, frq2, frq3;
/* Введение фактических данных*/
setlocale(LC_ALL, "Russian");
printf("1. Введите: процессор, Частоту, RAM, тип >");
scanf("%s %f %c %c",computer1, &frq1, &ram1, &type1);
printf("2. Введите: процессор, Частоту, RAM, тип >");
scanf("%s %f %c %c",computer2, &frq2, &ram2, &type2);
printf("3. Введите: процессор, Частоту, RAM, тип >");
scanf("%s %f %c %c",computer3, &frq3, &ram3, &type3);
/* Вывод таблицы */
/* вывод заголовков */
printf("|---------------------------------------------|\n");
printf("|Характеристики ПЭВМ |\n");
printf("|---------------------------------------------|\n");
printf("| Процессор | Частота (Mgz) | RAM(Mb) |Тип|\n");
printf("|-------------|---------------|-----------|---|\n");
/* вывод строк фактических данных */
printf("| %10s | %f| %-3d | %c|\n", computer1, frq1, ram1, type1);
printf("| %10s | %f| %-3d | %c|\n", computer2, frq2, ram2, type2);
printf("| %10s | %f| %-3d | %c|\n", computer3, frq3, ram3, type3);
/* вывод примечаний */
printf("|---------------------------------------------|\n");
printf("| Тип: C-CISC-процессор, R-RISC-процессор |\n");
printf("|---------------------------------------------|\n");
system("pause");
return 0;
}
Вся проблема в стандартном терминале Windows - он не умеет в нормальные кодировки. Более-менее приличное решение есть тут и тут (я не проверял работоспособность, но выглядит правдоподобно). Другой вариант - использовать powershell, там можно задавать кодировки на входной и выходной потоки, но это требует чуть ли не прав администратора. Этот вариант я пробовал - работает, но подробностей не помню.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Как в winapi изменять размер окна сразу по x и y координатам (те
В си-подобных языках предоставляется возможность определить изменение переменной в объявлении for, а далее в самом цикле изменять её значениеПример...