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