2015-12-05 5 views
-2

Я сканируя от входа стандартного ввода от пользователя, который выглядит какПоследний символ в зсапЕ

{ 1, 2, 3, 4, 5, 6 } 

код, который я использую довольно прост

int main (void) { 
    char d; 
    int i; 
    while(1){ 
    scanf("%c %d",&d,&i); 
    printf("%c %d",d,i);  
    } 

, но выход всегда без последней фигурной скобки, например

input = { 1, 70, 8, 1 } 
output = { 1, 70, 8, 1 1 

, в то время как я хочу, чтобы вывести то же самое и хранить числа в массиве, есть ли у вас какие-либо идеи о том, как t о исправить это нежелательное поведение <

+0

Мы должны видеть больше кода ... – Idos

+0

Вот весь код – Abdir

+2

Ваш код может читать только ноль или более наборов «характера следует номер ». Но ваш вход не состоит из нуля или более наборов «символов, за которыми следует число», так как число не следует за символом '}'. Так как же это может работать? –

ответ

1

попробовать это

char d; 
int i; 
while(1){ 
    scanf(" %c", &d); 
    if(d == '}'){ 
     printf(" %c\n", d); 
     break;//or continue; 
    } 
    else 
     ungetc(d, stdin); 
    scanf(" %c %d", &d, &i); 
    printf("%c %d", d, i); 
} 
+0

Основная идея состоит в том, что сравнение ''} ''с символом чтения. 'ungetc' может удалить, деля вход. – BLUEPIXY

Смежные вопросы