[英]C programming, scanf() function
scanf是否在其缓冲区或输入流中放入空格? 如果我说
scanf("%c %d %d", &character, &num1, &num2);
现在说
scanf("%c", &char2);
我知道enter会保留在缓冲区中,但空格会计数吗?
scanf("%c%d%d", &character, &num1, &num2);
这与第一部分有什么不同吗?
也是另一回事。 我可以在用户按下Enter后以某种方式中断scanf吗? 如果在ex的num1之后按Enter。 输入:i 5
我可以以某种方式使scanf在此之后停止,即使它正在等待另一个输入?
scanf
格式字符串中的空格将占用所有空格(如果有); 格式说明符%d
也将忽略实际数字之前的所有空格。 因此, " %d"
具有相同的效果"%d"
。 格式说明符%c
不会忽略空格,但阅读他们,所以" %c"
将不同于"%c"
。 在您的情况下, %c
位于scanf("%c %d %d", ...)
格式字符串的开头,其作用与scanf("%c %d %d", ...)
相同scanf("%c%d%d", ...)
。
如果要允许在输入所有内容之前退出,我建议使用fgets
读完整的“行”,然后相应地解析输入,例如,使用strtok
sscanf
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.