c – Por que fscanf só retorna o ultimo valor da linha de um arquivo txt?

Eu quero ler os 2 valores da primeira linha deste arquivo txt:

Arquivo.txt

e tentei usar este codigo:

inserir a descrição da imagem aqui

no entanto o valor da linha é “0”, ou seja nao foi lido:
inserir a descrição da imagem aqui

mas se eu mudo o tipo da variavel “colunas” para int, o valor da variavel “linhas” é lida corretamente e passa a valer 4 conforme no arquivo .txt

Por que a variavel “colunas” precisa ser int e nao char?