@ch1ps01

Проблема с преобразование с char в int?

#include <windows.h>
#include <iostream>
#include <string>

void flood(int &key)
{
    const int event_cnt = 2;
    INPUT ip1[event_cnt];
    ip1[0].type = INPUT_KEYBOARD;
    ip1[0].ki.wScan = 0;
    ip1[0].ki.time = 0;
    ip1[0].ki.dwExtraInfo = 0;
    ip1[0].ki.wVk = key;
    ip1[0].ki.dwFlags = 0;   
    ip1[1] = ip1[0];
    ip1[1].ki.dwFlags = KEYEVENTF_KEYUP;

    SendInput(event_cnt, ip1, sizeof(INPUT));
}

int main()
{
    std::string word;
    std::cout << "Enter word.\n";
    std::cin >> word;

    Sleep(5000);

    for (int i = 0; i < word.length(); i++)
    {
        int key = static_cast<int>(word[i]);
        flood(key);
    }

    return 0;
}

вкратце - я ввожу в консоль слово, после в цикле каждый символ слова преобразовывается в int и далее функция flood, которая эту букву печатает, но дело в том, что при преобразовании код числа меняется по неизвестной мне причине, то есть условно говоря вместо буквы a напечатается число 1, в чём проблема?
  • Вопрос задан
  • 145 просмотров
Решения вопроса 1
wataru
@wataru Куратор тега C++
Разработчик на С++, экс-олимпиадник.
Проблема с win api: https://learn.microsoft.com/en-us/windows/win32/in...

Оно ожидает вот такие коды. И, если для заглавных английских букв оно еще совпадает с кодами ascii, то для строчных букв - нет.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы