这种使用方法为什么只能输出第一个输入的数据,如果将0换成EOF则程序会陷入死循环,这又是为什么
你可以试着将!=0改成==1
while(1){
if( scanf("push-%d", &number[ ++amountPush]) == 1) {
push( number[ amountPush] ) ;
showStack( ) ;
} else if( scanf("pop-%d", &number[++amountPop]) == 1) {
printf( "%d has been popped", pop());
showStack( );
} else {
break;
}
}
如果以上回答对您有所帮助,点击一下采纳该答案~谢谢
用%s得到字符串之后再解析
不要在scanf里写死格式
按照你现在的代码,push和pop之间不能有其他字符
你加了空格,导致走进else里了