Add parseInt function for parsing CLI arguments for array size

This commit is contained in:
Tom Deakin 2021-01-12 10:28:01 +00:00
parent 15001000c5
commit 903eb40d19

View File

@ -518,6 +518,13 @@ int parseUInt(const char *str, unsigned int *output)
return !strlen(next);
}
int parseInt(const char *str, int *output)
{
char *next;
*output = strtol(str, &next, 10);
return !strlen(next);
}
void parseArguments(int argc, char *argv[])
{
for (int i = 1; i < argc; i++)
@ -538,13 +545,11 @@ void parseArguments(int argc, char *argv[])
else if (!std::string("--arraysize").compare(argv[i]) ||
!std::string("-s").compare(argv[i]))
{
unsigned int tmp_array_size = static_cast<unsigned int>(ARRAY_SIZE);
if (++i >= argc || !parseUInt(argv[i], &tmp_array_size))
if (++i >= argc || !parseInt(argv[i], &ARRAY_SIZE))
{
std::cerr << "Invalid array size." << std::endl;
exit(EXIT_FAILURE);
}
ARRAY_SIZE = static_cast<int>(tmp_array_size);
}
else if (!std::string("--numtimes").compare(argv[i]) ||
!std::string("-n").compare(argv[i]))