我正在讀取用戶輸入的字符串並在循環內使用該字符串進行基本計算的程序中工作。 我的一般問題是使用循環內部的字符串,儘管後來它將不得不做更多的事情,但從現在開始,我只需要測試Bolzano定理(特別是爲了找到可能的根的區間) 。 我已經開始研究一個函數,該函數通過字符讀取輸入字符,並用開關控件計算中綴表達式。 不過,我想知道是什麼,如果有一種方法可以做這樣的事情:C/C++:將讀取的字符串傳遞給程序中的循環C
{
/*Already stored the doubles: a, b, precision.*/
printf("Enter the expression you want to calculate");
scanf("%s", expression);
/*User input: (3*i)+(i*i)-3*/
while(i <= b){
fa = (3*i)+(i*i)-3; /*How to insert the string here*/
fb = (3*(i+precision))+((i+precision)*(i+precision))-3;
if(fa*fb < 0)
printf("There is at least one root in the interval: [ %g, %g ].", a, a+precision);
/*And goes on...*/
}
假設用戶沒有輸入在循環使用無效的表達式(如I^7 )或者我已經實現了控制來轉換這些表達式(類似於讀取一個字符串,並將其更改爲後綴或前綴符號進行必要的轉換),有沒有辦法將一個存儲的字符串在一個賦值循環中使用?
在C或C++?也許你想'atoi'? – 2013-04-09 03:55:52
'atoi'有一些非常糟糕的語義 - 'strtol'總是一個更好的選擇。 – 2013-04-09 04:02:01
您需要一個表達式解析器。 – user93353 2013-04-09 04:10:15