2015-09-04 28 views
0

我無法找到的第三個錯誤Stroustrup的http://www.stroustrup.com/Programming/calculator08buggy.cpp不能在Stroustrup的PPP2e章找到3錯誤7鑽

到目前爲止,我已經在結構令牌添加了這個讓代碼編譯:

Token(char ch, string s) :kind(ch), name(s) { } 

而且在Token_stream ::讓我改變

while(cin.get(ch) && (isalpha(ch) || isdigit(ch))) s=ch; 

到:

while(cin.get(ch) && (isalpha(ch) || isdigit(ch))) s+=ch; 

這:

if (s == "quit") return Token(name); 

到:

if (s == "quit") return Token(quit); 

,但我找不到過去的錯誤。我似乎無法得到代碼打破,並重新閱讀代碼幾次後,我無法找到更多的錯誤。

回答

1

for (int i = ... //簽署對無符號comparsion(使用的size_t代替)

i <= names.size() //它會後線上最後一個有效後來

而且也未使用的變量訪問元素139

令牌:: get(),double get_value(std :: string)和double primary():至少有一條路徑沒有返回...

+0

只是想知道,但需要多長時間才能找到這些錯誤?我想我需要更多的經驗/練習 – London

+0

我已經使用了大部分這些牆壁。而「<=」確實是一個常見的錯誤,所以它就像一個黑暗中的燈塔 - 我剛剛看到它。 – KIIV

+0

好的非常感謝您的幫助! – London