입력하다:
> printf 1\n\2\n3\n
1
2
3
원하는 출력:
0
1
1
타이핑 printf 1\n\2\n3\n | dc -e '-p'
출력은 다음과 같습니다:
dc: stack empty
dc: stack empty
답변1
전체 명령 세트를 에 직접 파이프할 수 있습니다 dc
.
printf "1 2 3 - - p" | dc
임의의 스택을 빼려면 매크로를 사용할 수 있습니다.
printf "%s [-z1<r]srz1<rp" "<insert numbers here>" | dc
예를 들어
printf "%s [-z1<r]srz1<rp" "100 5 2 1" | dc
96
이 매크로는 다음을 수행합니다.
[
매크로 시작-
처음 두 숫자를 빼고 스택에 다시 푸시합니다.z1<r
스택 크기를 스택과 1로 푸시한 다음 LESSTHAN을 비교하고 true인 경우r
매크로를 실행합니다.]sr
매크로가 종료되고 레지스터 r에 저장됩니다.z1<r
테스트를 통해 스택에 요소가 포함되어 있는지 확인1 < Stack Size
p
결과를 인쇄합니다.`