我只是想知道是否有可能做這樣的事情:使用scanf進行選擇性輸入。可能只讀ASCII x79的和0x6e
char yn;
scanf("%79/6ec",yn);
所以YN只能成爲爲y(x79的)或n(0x6e)
我只是想知道是否有可能做這樣的事情:使用scanf進行選擇性輸入。可能只讀ASCII x79的和0x6e
char yn;
scanf("%79/6ec",yn);
所以YN只能成爲爲y(x79的)或n(0x6e)
沒有,但你可以使用scanf函數讀取字符
scanf("%c" , &yn);
之後,你必須檢查它是否是Y/N或非法輸入
。
if (yn == 'y') {
...
}
您可以使用%[
轉換,做這樣的事情:
char yn[2];
if (scanf("%1[yn]", yn) == 1 && yn[0] == 'y')
感謝您的回答,我不確定我瞭解這%[轉換雖然。你能解釋發生了什麼,爲什麼你不包括C但使用[YN]? – user1083734
'%['轉換匹配指定集合中的非空字符串(在本例中爲'yn') – Hasturkun
更好的方法應該是使用的scanf掃描集,如:
char c[2];
if(scanf("%1[yn]",c)==1)
puts("yn");
else
puts("not");
嗨,感謝您的回答,我不確定我明白這是如何工作的,但您能否解釋它多一點,並說出發生了什麼?我不明白%1 [yn]「,c? – user1083734
我現在已經實現了這個方法,非常感謝!我只是想知道是否有這樣做的更短的方式。 – user1083734
@ user1083734也許'if(getchar()=='y'){...}' – stacker
謝謝,我會給它一個去! – user1083734