我试图从命令行读取一个非负数或减号,如果输入不是其中一个程序终止,所以我做了以下内容: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()
来读取输入,然后检查它,但我不想那么麻烦。
这是一些很肮脏的代码,你有... –