如何在C语言的Dev-C++中使用西里尔字母

问题描述 投票:0回答:1

当我用C语言编写程序时,我尝试在Dev-C++中使用西里尔字母,但是当启动控制台时打印一些符号,例如“?”例如。

我使用线路

system("chcp 1251>nul")
,但它不起作用。

您知道如何在控制台中打印西里尔字母吗?使用什么代码?

谢谢。

c cyrillic
1个回答
-1
投票

“系统(”chcp 1251>nul”);” Dev-C++ 是 C 语言的一部分,运行在 Windows7х64 上。 (您在 Windows10 上使用过吗?)。 Если не работает у Вас, то причина в установках среды. Редактор Dev-C++ 包含在 UTF-8 中,并且包含 UTF-8 中的 BOM 和 BOM。 И может быть настроен на ANSI。 Если среда выполнения кода это эмулятор Windows, то вполне возможно что причина в этом. Или в Вашей программе первоначально была установлена CP65001, это приведёт к подавлению в консоли кириллицы и прочих с имволов,кроме латиницы。 Окромя этого, системные вызовы "system" работают иначе чем "setlocale". Использование вызова 系统 создает подпроцесс, который в Windows является довольно дорогим и в любом случае не очень дешевым в лю ой операционной системе。 Причина в том,что системный вызов это иной уровень привилегий,поэтому этот процесс создаётся с правами системы。 Взаимодействие программы пользователя через запрос к системе запускает обслуживание системой запроса пользователя, что наг ружает“процессы”,поскольку обслуживается более высокая привилегия。 Кроме этого, если что-то в коде не впорядке, то это прямая угроза безопасности. Поэтому системные запросы из программы пользователя НЕ РЕКОМЕНДУЮТСЯ. Для этого есть API。 Setlocale будет менее затратным для системы и безопасным.

© www.soinside.com 2019 - 2024. All rights reserved.