I have problem with this code:
http://pastebin.com/4XpVqMnk
as you can see from the pic too.
I acquire a matrix as a string (all in one line) from input and store it the numbers var.
Then I proceed to fill the matrix with the values gotten. But I noticed that sscanf picks the first %d value every time w/o advancing further, so the matrix is being filled all with the first number. Why is that?
>>55072192
>But I noticed that sscanf picks the first %d value every time w/o advancing further, so the matrix is being filled all with the first number. Why is that?
You're not increasing the buffer position, so it will always start searching from the start of the buffer.
>>55072226
How can I increase it?
>>55072249
Two secs, I'm writing an example now. Short answer: use strtok
>>55072192
Your toy C program doesn't deserve its own thread. Post in the stupid question thread.
>>55072249
>>55072256#include <stdio.h>
#include <string.h>
int main()
{
int i, j, mat[4][4];
char string[] = "16 3 2 13 5 10 11 8 9 6 7 12 4 15 14 1";
char* tmp = string;
for (i = 0; i < 4; i++)
{
for (j = 0; j < 4; j++)
{
sscanf(strtok(tmp, " "), "%d", &mat[i][j]);
tmp = NULL;
printf("%d ", mat[i][j]);
}
printf("\n");
}
return 0;
}
>>55072361
why is that from the 2nd time on strtok uses NULL as first parameter? It searches in a null string?
>>55072491
>why is that from the 2nd time on strtok uses NULL as first parameter? It searches in a null string?man strtok