動かしてませんがこれでどうですか。
#include <cassert>
#include <vector>
bool Input::GetKeyDown(const char* input,const int key)
{
assert(0<=key && key<256);
static std::vector<int> tempframe(256);
if(input[key]==1)
{
tempframe[key]++;
}
else
{
tempframe[key]=0;
}
return tempframe[key]==1;
}