程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C語言如何清除scanf()緩存

C語言如何清除scanf()緩存

編輯:關於C語言

C語言如何清除scanf()緩存



(1)清除緩存的函數是:

void safe_flush(FILE *fp)
{
	int ch;
	while( (ch = fgetc(fp)) != EOF && ch != '\n' );          
}

(2)然後我們在使用的時候,直接調用就可以了:

scanf("%d",&k);

safe_flush(stdin);

這樣就可以清除緩存帶來的問題了!


(3)案例演示

a.當我們不清除scanf所帶來的危害的時候:

#include
#include

int main()
{
	int k;
	printf("請輸入你的秘鑰:(整數)");
	scanf("%d",&k);

	char c;
	printf("請輸入一個字符:");
	c = getchar();

	printf("%d ",k);
	printf("%c ",c);


}


我們發現 我們輸入一個整數的時候,就自動結束程序了,並且將輸入的數值作為緩存給了字符c


\


然後我們清除緩存:

<喎?http://www.Bkjia.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHByZSBjbGFzcz0="brush:java;">#include #include //用於清除回車鍵緩存的影響 void safe_flush(FILE *fp) { int ch; while( (ch = fgetc(fp)) != EOF && ch != '\n' ); } int main() { int k; printf("請輸入你的秘鑰:(整數)"); scanf("%d",&k); safe_flush(stdin); char c; printf("請輸入一個字符:"); c = getchar(); printf("%d ",k); printf("%c ",c); }
當我們輸入整數之後,提示我們輸入字符,顯然消除了緩存



ok!


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved