我正在读取用户输入的字符串并在循环内使用该字符串进行基本计算的程序中工作。 我的一般问题是使用循环内部的字符串,尽管后来它将不得不做更多的事情,但从现在开始,我只需要测试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