fscanf() reads dataa from the file directly into a variable, it is not necessary to do other transfers. The parameters to fscanf() must all be pointers to your program's variables so that fscanf() can change their values. In your example you need to do it like this:
char temp[80]; // the tag name
int rows;
int columns;
// etc for each variable
fscanf(infilep, "%s: %d\n", temp, &rows)
In the above you see that char arrays are always passed as pointers so there is no need to use & operator on them. Another way to do it, if you like using &, is like this: &temp[0], which creates a pointer to the first character in the array. Either way of coding it is correct.
The problem with using fscanf() like the above is that you can't scramble the lines in the fine and still get the same results. Once you write the program the file format must be written in stone. If you take my original suggestion then the lines of the file can be in any order you wish, the program is not dependent on the file order and vice versa.