Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/129.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 推送到堆栈的值不是我弹出的值C++;_C++_Stack - Fatal编程技术网

C++ 推送到堆栈的值不是我弹出的值C++;

C++ 推送到堆栈的值不是我弹出的值C++;,c++,stack,C++,Stack,例如,如果我按下一个4,当我做一个弹出,它会显示为52 我做错了什么?我该如何修复它 IntegerStack.cpp #包括“IntegerStack.h” #包括 使用名称空间std; IntegerStack::IntegerStack() { 使用=0; } void IntegerStack::push(int条目) { 数据[使用]=输入; ++使用; } int IntegerStack::pop() { --使用; 返回数据[已使用]; } int IntegerStack::p

例如,如果我按下一个4,当我做一个弹出,它会显示为52

我做错了什么?我该如何修复它

IntegerStack.cpp

#包括“IntegerStack.h”
#包括
使用名称空间std;
IntegerStack::IntegerStack()
{
使用=0;
}
void IntegerStack::push(int条目)
{
数据[使用]=输入;
++使用;
}
int IntegerStack::pop()
{
--使用;
返回数据[已使用];
}
int IntegerStack::peek()常量
{
返回数据[used-1];
}
IntegerStack.h

\ifndef INTEGERSTACK\u H
#定义INTEGERSTACK_H
#include//提供类型大小。
使用名称空间std;
类整数堆栈
{
公众:
//成员常数
静态常数标准::容量=100;
//默认构造函数
IntegerStack();//内联
//修改成员函数
无效推送(int输入);
int-pop();
//常数成员函数
std::size\u t size()常量{return used;}//Inline
bool为空()常量{return used==0;}//Inline
int peek()常数;
私人:
//数据成员
int数据[容量];
标准:使用的尺寸;
};
#endif//INTEGERSTACK_H
main.cpp

#包括
#包括
#包括“IntegerStack.h”
使用名称空间std;
int main()
{
字符串内容;
ifstream输入文件;
内容;
整数堆栈;
//打开文件
open(content.c_str());
如果(输入文件)
{
//将值放入堆栈中
while(getline(inputFile,content))
{

cout我可以通过将
operanstack.push(内容[I]);
更改为
operanstack.push(内容[I]-“0”);

突击测验来解决这个问题。什么数据类型是
content[I]
。作为一个数字,该数据类型的值是多少?它是一个整数@SamVarshavchikYou相信您的
std::string
包含整数?您的
内容是一个
std::string
不,恐怕它不包含整数。这就是将字符“8”(ASCII 56)转换为实际整数的结果56.感谢您提供输入和工作复制。字符8实际上是ascii中的整数56,很容易出错。