首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将字符数组转换为整型或双精度型?

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

Stack Overflow用户
提问于 2012-03-26 13:10:18
回答 4查看 1.8K关注 0票数 0

这段代码是一个堆栈的链表实现,用于解决postfix.txt中的后缀问题。

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

代码语言:javascript
复制
       void main()
        {
        ifstream postin("postfix.txt");
            char oper;
            char a[100];  
            int i=0;
            while(oper != '$')
            {
                stack operands;
                while(oper != '/n'&& oper != '$')
                {
                    while(oper != ' '&&oper != '/n'&& oper != '$')
                    {
                        oper = postin.get();
                        if(oper != '+' || oper != '*' || oper != '-' || oper != '/')
                        {
                            do
                            {
                            a[i]= oper;
                            i++;
                            }while(oper != ' ');
************************************************double number = atoi(a[]);
                            operands.Push(number)
                        }
                        else
                        {
                            double b = operands.Pop();
                            double a = operands.Pop();
                            if(oper == '+')
                            {
                                operands.Push(a+b);
                            }
                            else if(oper == '-')
                            {
                                operands.Push(a-b);
                            }
                            else if(oper == '/')
                            {
                                operands.Push(a/b);
                            }
                            else 
                            {
                                operands.Push(a*b);
                            }
                        }
                    }

                }

            }



        postin.close();
        }
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-03-26 13:14:04

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

首先,你需要知道你要处理的是整数还是浮点值。然后,您需要使用scanf()或atoi()/atof()将值读入整型或双精度型。不过,这些函数都有一个char*参数,所以您只需传递a,而不是a[]

票数 0
EN

Stack Overflow用户

发布于 2012-03-26 13:15:41

它就是atoi(a),或者如果你想从某个偏移量开始,也可以是atoi(a + n)。尽管strtol()/strtod()可能是更有用的函数,因为它们还会告诉您它们成功解析了多少个字符。并确保在数组中的某处有一个空的结束符。

票数 0
EN

Stack Overflow用户

发布于 2012-03-26 13:15:54

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9866889

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档