如何将char数组转换为整数或双精度数组
How do i convert a char array to a integer or double?
此代码是一个堆栈的链表实现,用于解决postfix.txt中的postfix问题。
我凝视着我试图转换的那条线。我只想在把它放在堆栈上之前把它做一个二重,这样我以后就不能用它做加法、减法、乘法和除法了。我得到的错误是说"需要一个表达式"。谢谢
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();
}
您不想"转换"字节数组,而是想将数字的字符串表示解析为正确的数据类型。
首先,你需要知道你要处理的是整数还是浮点值。然后,您需要使用scanf()或atoi()/atof()将值读取为int或double。不过,这些函数都有一个char*参数,所以只传递a
,而不是a[]
。
它只是atoi(a)
,如果您想从某个偏移量开始,可能是atoi(a + n)
。虽然strtol()
/strtod()
可能是更有用的函数,因为它们还可以告诉您它们成功解析了多少字符。并确保数组中的某个位置有一个null终止符。
使用atof()而不是atoi(),它会将字符串转换为双
Jake,你忘了放一个索引表达式:
double number = atoi(a[i]);
相关文章:
- C++使用整数的压缩数组初始化对象
- 在一定长度后从数组中打印时缺少整数
- 是否基于数组B整数打印数组A中的整数
- 检查TCHAR数组输入是否为带符号整数C++
- 如何将以逗号和空格分隔的整数读取到 2D 数组中?
- 从二进制文件中读取整数数组
- 整数区间(或 int 数组)中每个数字的出现次数
- 新的整数数组向右移动?
- C++ 中的二维整数数组,每行中的元素数量不均匀
- 在数组中输入 n 个整数的列表,并以类似于钟摆来回移动的方式排列它们. 输入-1 3 2 5 4,输出5 3 1 2 4
- 给定一个整数数组,需要在Max_Heap上运行操作。得到错误"segmentation fault",有什么想法吗?(C++)
- 为什么在我的 main 函数中声明整数后我的整数数组中会出现错误?
- 如何将字符串和整数读取到两个单独的动态数组中的程序编写?
- 在 C++ 中将整数数组转换为位集表示形式的最佳方法?
- C++数组输入不接受一定数量的整数
- 从两个 4x64 位整数数组中获取取模
- 如何计算数组整数的总可能组合
- 2D 字符串数组 C++:整数串联成字符串
- 将数组整数2除以偶数和
- 将2d数组整数数据从c++发送到qml