我想從與優先申請閱讀後以解決這種類型的表達式
2 + 3/5 * 9 + 3-4
這裏是我試圖解決該任務的代碼我怎樣才能解決這個問題C++優先經由申請
while (!inputFile.eof()) {
getline(inputFile, read);
cout << read << endl;
for (int i = 0; i < read.length(); i++) {
if (read[i] == '/') {
result = static_cast<float>(read[i - 1])/static_cast<float>(read[i + 1]);
read[i - 1] = result;
for (int j = i; j < read.length() - 2; j++) {
read[j] = read[j + 2];
}
read[read.length() - 1] = '\0';
read[read.length() - 2] = '\0';
}
}
cout << result << endl;
cout << read << endl;
}
你正在評估的操作數爲花車但你保存它放回串作爲一個字符,失去了任何精度。您正在基於它們的ascii表示來評估操作數,而不是實際值。該代碼假定每個操作數只有一個字符長。你只顯示分區,但是在執行乘法時,你可能會得到大於9的值,因此會有問題。我認爲你應該重新思考你的解決方案,我建議不要試圖在一個字符串中完成所有工作。 – vu1p3n0x
我不確定自己明白你想要做什麼。評估表達式不是一項簡單的任務。 [This](http://www.stroustrup.com/3rd_code.html)可能會幫助你(尋找桌面計算器)。如果'「/」'是字符串的第一個字符,而如果給定的格式良好的輸入不會發生 – ZDF