
paulo1205
(usa Ubuntu)
Enviado em 29/11/2016 - 21:32h
Como corrigir os problemas apontados acima?
Você precisa estudar o funcionamento de
scanf(), que é uma função bem complexa, para aprender a usá-la de modo adequado.
Em particular, você precisa conhecer o funcionamento de cada tipo de conversão. Assim, você saberá que expressões entre colchetes não funcionam como modificadores de
"%s", mas sim que
"%[" é uma conversão de próprio direito, e com características diferentes de
"%s". Também saberá quais conversões implicam o descarte automático de caracteres de espaçamento e quais podem ser usadas para ler tais espaços, considerando-os parte dos dados de interesse.
No caso do programa em questão, você deve corrigir suas strings de formatação para que as leituras de strings ocorram sem erros e sem interromper o processamento antes de chegar ao final da string de formatação. Se for necessário induzir o descarte de espaços em branco antes de uma conversão que não os descarta automaticamente, um mero espaço como parte da string de formatação pode ser suficiente.