Для %c
спецификатора преобразования, зсап не опускает пробельный как это делает для %d
, например. Вы должны сказать scanf пропустить пробелы, а затем прочитать первый символ без пробелов. Вот ваш фиксированный код.
#include<stdio.h>
#include <stdlib.h>
int main()
{
int i,l,*A;char C;
A=malloc(5*sizeof(int));
for(i=0;i<5;i++)
scanf("%d",A+i);
scanf(" %c",&C);
// ^here
scanf("%d",&l);
printf("%d%c\n",l,C);
free(A); // remember to free what you've malloc'd
return 0;
}
Поскольку вы спрашиваете, как проверить возвращаемое значение из зсапЕ см прототип зсапЕ:
Int зсапЕ (Const символ * формат, ...);
Как вы можете видеть, он возвращает int. Человек страницы говорит даже больше о возвращаемом значении:
ВОЗВРАТ СТОИМОСТИ
Эти функции возвращают число входных элементов успешно согласованы и назначен, который может быть меньше, чем предусмотрено для, или даже нулевой в случае раннего несоответствие соответствия.
Эта часть я отправлю для вас. Надеюсь, теперь ясно, как проверить возвращаемое значение scanf.
И должен также быть 'free' вызов указателя' malloc''ed. – Abhineet
Как проверить значение возвращаемого значения scanf()? –
Вы назначаете его переменной (как и с возвращаемым значением любой другой функции), а затем исследуете переменную (как и с любой другой переменной). – NPE