scanf和“\ n”转义序列

时间:2014-04-10 23:47:12

标签: c escaping sequence scanf

我不明白scanf指令的功能

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

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

1 个答案:

答案 0 :(得分:1)

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

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

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