C++ 如何将字符数组转换为整数或双精度?

C++ 如何将字符数组转换为整数或双精度?,c++,visual-c++,stack,C++,Visual C++,Stack,这段代码是解决postfix.txt中后缀问题的堆栈的链表实现 我盯着我要转换的线路看。 我只想在我把它放进堆栈之前把它做成一个双精度的,这样我以后就不能用它做加法、减法、乘法和除法了。我得到的错误是说“需要一个表达式”。 谢谢 您不希望“转换”字节数组,而是希望将数字的字符串表示形式解析为正确的数据类型 首先,您需要知道是要处理整数还是浮点值。然后您需要使用scanf()或atoi()/atof()将值读入int或double。但是,这些函数都采用char*参数,因此如果希望从某个偏移量开始,

这段代码是解决postfix.txt中后缀问题的堆栈的链表实现

我盯着我要转换的线路看。 我只想在我把它放进堆栈之前把它做成一个双精度的,这样我以后就不能用它做加法、减法、乘法和除法了。我得到的错误是说“需要一个表达式”。 谢谢

您不希望“转换”字节数组,而是希望将数字的字符串表示形式解析为正确的数据类型


首先,您需要知道是要处理整数还是浮点值。然后您需要使用scanf()或atoi()/atof()将值读入int或double。但是,这些函数都采用char*参数,因此如果希望从某个偏移量开始,您只需传递
a
,而不是
a[]

它只是
atoi(a)
,或者可能是
atoi(a+n)
。虽然
strtol()
/
strtod()
可能是更有用的函数,因为它们还告诉您它们成功解析了多少个字符。并确保数组中的某个位置有空终止符。

使用atof()而不是atoi(),它会将字符串转换为double

Jake,您忘记放置索引表达式了:

double number = atoi(a[i]);

你确定
/n
做了你想做的事吗?你要传递什么到scanf()?我以前从未使用过这样的代码。您将什么传递到scanf()中?我从未使用过这样的代码before@Jake:我怎么知道?我一生中从未使用过
scanf
double number = atoi(a[i]);