scanf中的最后一个字符

时间:2015-12-05 11:14:50

标签: c

我正在扫描来自用户的stdin输入,看起来像是

{ 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

虽然我想输出完全相同并在数组中存储数字,你有任何想法如何解决这个不需要的行为<

1 个答案:

答案 0 :(得分: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);
}