#include <cstdio>
#include <cstdint>
#include <cassert>
int main() {
    std::uint64_t ui;
    char c;
    auto ret = std::sscanf("111K", "%lu64%[B, K, M, G]", &ui, &c);
    assert(ret == 2);
    assert(ui == 111);
}
I tried to use sscanf to read a uint64_t and a char from one string, but it only read it ui (assertion ret == 2 fails) every time I tried this. 
 
     
     
    