Maison > développement back-end > C++ > Comment utiliser les caractères baltes dans les commandes CMD avec Visual Studio 2019 C ?

Comment utiliser les caractères baltes dans les commandes CMD avec Visual Studio 2019 C ?

Linda Hamilton
Libérer: 2024-11-02 20:07:31
original
413 Les gens l'ont consulté

How to Use Baltic Characters in CMD Commands with Visual Studio 2019 C  ?

Utilisation de caractères baltes dans le projet Visual Studio 2019 C et exécution de commandes CMD avec eux

Les projets Visual Studio 2019 C prennent en charge les caractères baltes. Pour utiliser ces caractères, le projet doit être configuré pour utiliser le codage UTF-8. Cela peut être fait en ajoutant le code suivant au fichier source du projet :

<code class="cpp">#include <iostream>
#include <locale>

int main()
{
    std::locale::global(std::locale("en_US.UTF-8"));
    std::cout << "ĀāĀā" << std::endl;
}
Copier après la connexion

Une fois le projet configuré pour utiliser l'encodage UTF-8, les caractères baltes peuvent être utilisés dans les applications console et dans les commandes CMD.

Conversion des caractères baltes en chaînes hexadécimales

Afin d'exécuter des commandes CMD avec des caractères baltes, elles doivent d'abord être converties en chaînes hexadécimales. Cela peut être fait en utilisant le code suivant :

<code class="cpp">#include <string>
#include <sstream>
#include <iomanip>

std::string toHexString(const std::string& str)
{
    std::stringstream ss;
    for (char c : str)
    {
        ss << std::hex << std::setw(2) << std::setfill('0') << (int)static_cast<unsigned char>(c);
    }
    return ss.str();
}</code>
Copier après la connexion

Exécuter des commandes CMD avec des caractères baltes

Une fois les caractères baltes convertis en chaînes hexadécimales, ils peuvent être utilisés pour exécuter des commandes CMD. Cela peut être fait en utilisant le code suivant :

<code class="cpp">#include <windows.h>
#include <iostream>
#include <string>

int main()
{
    STARTUPINFO si;
    PROCESS_INFORMATION pi;

    ZeroMemory(&si, sizeof(si));
    si.cb = sizeof(si);
    ZeroMemory(&pi, sizeof(pi));

    std::string cmd = "cmd /c echo ";
    cmd += "ĀāĀā";

    if (!CreateProcess(NULL, (LPSTR)cmd.c_str(), NULL, NULL, FALSE, CREATE_NO_WINDOW, NULL, NULL, &si, &pi)) 
    {
        std::cerr << "Error executing command" << std::endl;
        return 1;
    }

    WaitForSingleObject(pi.hProcess, INFINITE);

    CloseHandle(pi.hProcess);
    CloseHandle(pi.hThread);

    return 0;
}</code>
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal