【问题标题】:scanf and "\n" escape sequencescanf 和 "\n" 转义序列
【发布时间】:2014-04-10 23:47:11
【问题描述】:

我不明白scanf指令的作用

int i;
scanf("\n");
printf("hello!\n");
scanf("%d",&i);
printf(%d",i);

所以第二个 scanf 不让我输入第二个输入,它只取第一个值,为什么?

【问题讨论】:

标签: c escaping sequence scanf


【解决方案1】:

当您(例如)输入2[space][space][space] 时,空格将被\n 消耗掉,即使是您的“输入”! (当你真的想确认你的输入时).. 并且您的2 将存储在变量i..

这个\n 将继续扫描,直到找到一个非空白字符,例如:你的第二个 int 输入.. 当然它没有存储在任何变量中(请参阅你的代码)!

所以最后,它返回并打印出变量i的值;这是2..

【讨论】:

  • 但是为什么它直接存储在 i 变量 whitout 要求我在执行第二个 scanf 时输入第二个输入
  • 因为你的2 没有被\n 消费(它只消费非空格),所以它仍然存在消费的人想要它,在这种情况下,您的第二个扫描仪..
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-11
  • 2022-12-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多