繁体   English   中英

C编程,scanf()函数

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM