2011-12-11 63 views

回答

3

沒有,但你可以使用scanf函數讀取字符

scanf("%c" , &yn); 
之後,你必須檢查它是否是Y/N或非法輸入

if (yn == 'y') { 
    ... 
} 
+0

我現在已經實現了這個方法,非常感謝!我只是想知道是否有這樣做的更短的方式。 – user1083734

+0

@ user1083734也許'if(getchar()=='y'){...}' – stacker

+0

謝謝,我會給它一個去! – user1083734

3

您可以使用%[轉換,做這樣的事情:

char yn[2]; 

if (scanf("%1[yn]", yn) == 1 && yn[0] == 'y') 
+0

感謝您的回答,我不確定我瞭解這%[轉換雖然。你能解釋發生了什麼,爲什麼你不包括C但使用[YN]? – user1083734

+0

'%['轉換匹配指定集合中的非空字符串(在本例中爲'yn') – Hasturkun

3

更好的方法應該是使用的scanf掃描集,如:

char c[2]; 
if(scanf("%1[yn]",c)==1) 
    puts("yn"); 
else 
    puts("not"); 
+0

嗨,感謝您的回答,我不確定我明白這是如何工作的,但您能否解釋它多一點,並說出發生了什麼?我不明白%1 [yn]「,c? – user1083734