我對C中後綴記法計算器的輸入有問題。 我的老師讓我使用scanf(「%s」,令牌)來獲取輸入。要停止讀取令牌,我檢查scanf返回的值是否爲EOF。如果我在測試時使用輸入重定向,它會起作用,但如果我在Windows cmd上編寫表達式,我會陷入無限循環。如何在不輸入字符串的情況下直接按Enter鍵來停止scanf? 下面的代碼:使用scanf爲後綴記法計算器讀取表達式
#include <stdio.h>
#include <ctype.h>
#include "stack.h"
int main(){
int a,b,t,stop;
char token[10],c;
do{
stop = scanf("%s",token);
if (stop == EOF){
break;
}
if (isdigit(token[0])){
t = atoi(token);
push(t);
}else{
a = top();
pop();
b = top();
pop();
c = token[0];
switch(c){
case '+': t = a + b;
break;
case '-': t = a - b;
break;
case '*': t = a * b;
break;
case '/': t = a/b;
break;
}
push(t);
}
} while(1);
printf("Result: %d\n",top());
}
的問題是在如果停止變量inizialisation後塊,我想。對不起,我是英國人,我是意大利學生,我儘量保持整潔。
'CTRL + z'爲'EOF' – BLUEPIXY
@BLUEPIXY或'CTRL + D' –
@iharob他的系統是'視窗cmd'(他寫) – BLUEPIXY