从变量发送输入存储和使用 我对C++很陌生,怀疑是否有什么可以帮助我正在进行的项目。< /P>

从变量发送输入存储和使用 我对C++很陌生,怀疑是否有什么可以帮助我正在进行的项目。< /P>,c++,vector,sendinput,C++,Vector,Sendinput,在我的代码中,我正在从一个文件中收集信息,该文件包含程序的信息,然后在该信息的条件为真时发送一个密钥 下面是我的文件的外观: 0 0 1 0 235 10 0x21 PG_UP name1 1 0 1 0 260 10 0x22 PG_DN name2 2 0 1 1 235 55 0x23 END name3 3 1 1 1 10 10 0x51 Q name 4 4 1 1 1 35 10 0x57 W name 5 因为列表长度并不总是相同的,所以我的代码使用它将信息收集到内存中 str

在我的代码中,我正在从一个文件中收集信息,该文件包含程序的信息,然后在该信息的条件为真时发送一个密钥

下面是我的文件的外观:

0 0 1 0 235 10 0x21 PG_UP name1
1 0 1 0 260 10 0x22 PG_DN name2
2 0 1 1 235 55 0x23 END name3
3 1 1 1 10 10 0x51 Q name 4
4 1 1 1 35 10 0x57 W name 5
因为列表长度并不总是相同的,所以我的代码使用它将信息收集到内存中

string pkey, spell;
int entnum, state, movable, gcd, coordx, coordy, key;

while(WorkingFile >> entnum >> state >> movable >> gcd >> coordx >> coordy >> key >> pkey >> spell)
{
BIntVector.push_back(entnum);
BIntVector.push_back(state);
BIntVector.push_back(movable);
BIntVector.push_back(gcd);
BIntVector.push_back(coordx);
BIntVector.push_back(coordy);
BIntVector.push_back(key);

AIntVector.push_back(BIntVector);

BIntVector.clear();

BStringVector.push_back(pkey);
BStringVector.push_back(spell);

AStringVector.push_back(BStringVector);

BStringVector.clear();
}
BIntVector.向后推(键)
用于收集十六进制键,以便稍后在代码中输入send key语句,具体取决于是否满足其他条件,这是开始时出现0和1的原因。字符串值仅用于将内容打印到屏幕上

现在我在线发现这段代码能够执行
SendInput()
,当键值存储为int时,它似乎工作正常,但当我尝试从文本文件中获取十六进制值时,程序崩溃,因为它无法将其存储为int。但是,如果值不是int,我下面的代码将无法编译。 我没有在下面为send输入编写这段代码,这就是为什么我不确定它为什么不工作或者如何绕过它。 也许这很简单,但我不知道sendkey()中发生了什么


任何帮助都会很好,谢谢。

那么你的问题是“如何将字符串形式的十六进制数转换为整数?”我想我的问题是,我有一个文本文件中的十六进制数,我想输入整数,我该怎么做?或者看看这段代码,有没有更好的方法来处理itI?我不能对
SendInput
(这是winapi函数吗?)发表评论,但
istream
s可以为您转换十六进制。看到这个问题:太好了,我想我可以添加这个函数,将十六进制值从文本值转换为Int值,其他函数可以使用。
int k = 0;

k = AIntVector[0][6];

int sendkey()
{
    INPUT ip;

    ip.type = INPUT_KEYBOARD;
    ip.ki.wScan = 0;
    ip.ki.time = 0;
    ip.ki.dwExtraInfo = 0;

    ip.ki.wVk = k;
    ip.ki.dwFlags = 0;
    SendInput(1, &ip, sizeof(INPUT));

    ip.ki.dwFlags = KEYEVENTF_KEYUP;
    SendInput(1, &ip, sizeof(INPUT));
}