没有 留在缓冲区中?

问题描述 投票:0回答:1

为什么当我只使用整数时程序运行良好?我为变量“a”插入一个数字然后按 Enter 键后却没有 保留在缓冲区中?。如果确实保留了,为什么我也可以初始化 b ?如果我将 b 定义为 char,则 b 输出将为 b 10,换句话说就是空字符。例如,如果我想多次输入多个人的名字,我会遇到 anlyl 问题吗?或者 for func 会清除缓冲区吗?那么出了什么问题以及如何解决这个问题

#include <stdio.h>

int main() {
   int a,b;
   
  printf("a ");
  scanf("%d",&a);
  printf("a=%d",a);
  
  printf("\nb ");
  scanf("%d",&b);
  printf("b=%d",b);
    return 0;
}
c printf buffer ascii
1个回答
0
投票

对于大多数转换,包括

%d
scanf
读取并忽略初始空白字符,包括换行符。

© www.soinside.com 2019 - 2024. All rights reserved.