这种使用方法为什么只能输出第一个输入的数据

img

img

这种使用方法为什么只能输出第一个输入的数据,如果将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里了