#include <iostream>
#include <sstream>
#include <string>
#include <locale>
namespace mns
{
template<class charT>
const charT* begin(const std::basic_string<charT>& s)
{
return &s.front();
}
template<class charT>
const charT* end(const std::basic_string<charT>& s)
{
return &s[s.size()];
}
}
std::istringstream diffusionTensorFile("No. activity levels : 3\nNo. pitch-angles : 90\nNo. energies : 11\nNo. L-shells : 10");
int main()
{
std::locale loc(diffusionTensorFile.getloc());
auto& f = std::use_facet<std::ctype<char>>(loc);
int alphaSize;
std::string sline;
while (std::getline(diffusionTensorFile, sline))
{
const char* result;
if ((result = f.scan_is(f.digit, mns::begin(sline),
mns::end(sline))) != mns::end(sline))
{
alphaSize = atoi(result);
// do something with alphaSize
std::cout << alphaSize << std::endl;
}
}
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3N0cmVhbT4KI2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPGxvY2FsZT4KCm5hbWVzcGFjZSBtbnMKewogICAgdGVtcGxhdGU8Y2xhc3MgY2hhclQ+CiAgICBjb25zdCBjaGFyVCogYmVnaW4oY29uc3Qgc3RkOjpiYXNpY19zdHJpbmc8Y2hhclQ+JiBzKQogICAgewogICAgICAgIHJldHVybiAmcy5mcm9udCgpOwogICAgfQoKICAgIHRlbXBsYXRlPGNsYXNzIGNoYXJUPgogICAgY29uc3QgY2hhclQqIGVuZChjb25zdCBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyVD4mIHMpCiAgICB7CiAgICAgICAgcmV0dXJuICZzW3Muc2l6ZSgpXTsKICAgIH0KfQogCnN0ZDo6aXN0cmluZ3N0cmVhbSBkaWZmdXNpb25UZW5zb3JGaWxlKCJOby4gYWN0aXZpdHkgbGV2ZWxzIDogICAgM1xuTm8uIHBpdGNoLWFuZ2xlcyAgICA6ICAgOTBcbk5vLiBlbmVyZ2llcyAgICAgICAgOiAgIDExXG5Oby4gTC1zaGVsbHMgICAgICAgIDogICAxMCIpOwogCmludCBtYWluKCkKewogICAgc3RkOjpsb2NhbGUgbG9jKGRpZmZ1c2lvblRlbnNvckZpbGUuZ2V0bG9jKCkpOwogICAgYXV0byYgZiA9IHN0ZDo6dXNlX2ZhY2V0PHN0ZDo6Y3R5cGU8Y2hhcj4+KGxvYyk7CiAgICBpbnQgYWxwaGFTaXplOwogICAgc3RkOjpzdHJpbmcgc2xpbmU7CiAKICAgIHdoaWxlIChzdGQ6OmdldGxpbmUoZGlmZnVzaW9uVGVuc29yRmlsZSwgc2xpbmUpKQogICAgewogICAgICAgIGNvbnN0IGNoYXIqIHJlc3VsdDsKICAgICAgICBpZiAoKHJlc3VsdCA9IGYuc2Nhbl9pcyhmLmRpZ2l0LCBtbnM6OmJlZ2luKHNsaW5lKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtbnM6OmVuZChzbGluZSkpKSAhPSBtbnM6OmVuZChzbGluZSkpCiAgICAgICAgewogICAgICAgICAgICBhbHBoYVNpemUgPSBhdG9pKHJlc3VsdCk7CiAgICAgICAgICAgIC8vIGRvIHNvbWV0aGluZyB3aXRoIGFscGhhU2l6ZQogICAgICAgICAgICBzdGQ6OmNvdXQgPDwgYWxwaGFTaXplIDw8IHN0ZDo6ZW5kbDsKICAgICAgICB9CiAgICB9Cn0=