I have the following command-line interface with a -k parameter that looks like this: -k "0.0:-1.0:0.0:-1.0:4.0:-1.0:0.0:-1.0:0.0". These are 9 double values separated by ":". I've managed to separate the first double value 0.0 with strtok() and strtod() but I need all 9 values and I don't seem to find an efficient way to do it.
Maybe with a loop and then save the values in a 2x3 array but no results yet. In the end, I have to use these numbers to manipulate pixels in an image. Note that these are example numbers and the user can type any double value from 0 to let's say 255. Hope someone can help with some advice.
Below is the code on how I managed to separate the first value. I would appreciate any advice on how to solve this, thank you!
char *kernel_input;
char *end = NULL;
kernel_input = strtok(kArg, ":");
if(kernel_input == 0)
{
/* ERROR */
}
double value_1 = (double) strtod(kernel_input, &end);
Would you please try something like:
If you execute the compiled command e.g.:
It will output:
If you put an invalid charcter in the string, the program will print an error message and abort.