我試圖從命令行讀取一個非負數或減號,如果輸入不是其中一個程序終止,所以我做了以下內容:scanf()讀取減號並不放回
while((scanf("%d", &n)==1 && n>-1 && (input=1)) || (scanf("%c", &delete)==1 && delete=='-' && (input=2)))
input
是一個整數,並指示將其讀數字或減號(在循環input=1
& input=2
意)。
現在,該方案適用於數字,但是如果我輸入一個減號第一scanf()
讀它,但不把它放回去apparantly,所以第二scanf()
覺得沒有什麼和終止程序。
但是,如果我輸入--
(兩個減號),第一個scanf()
會讀取一個,第二個scanf()
會讀取另一個,它會正常工作。
來自命令行的輸入不能改變,它必須是一個減號。解決這個問題的最好方法是什麼?
請注意,我知道如何使用getchar()
來讀取輸入,然後檢查它,但我不想那麼麻煩。
這是一些很骯髒的代碼,你有... –