簡體   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