C++を勉強するため、「独習C++」を読み進めているのですが、3章のこの章の理解度チェックの5番目の問題で、本通りに打ち込んでも結果がうまく返ってきません。。。
概要は、スタックにアルファベットを格納し、順に表示させる、というものです。
もしお時間ある方いたら、ご教授いただけると大変助かります。よろしくお願い致します。
以下コードになります。
/*
独習C++p103
この章の理解度チェック5
*/
#include <iostream>
using namespace std;
#define SIZE 27
class stack{
char stck[SIZE];
int tos;
public:
stack();
void push(char ch);
char pop();
};
stack::stack(){
cout << "Constructing a stack\n";
tos = 0;
}
void stack::push(char ch){
if(tos == SIZE){
cout << "Stack is full\n";
return;
}
stck[tos] = ch;
tos++;
}
char stack::pop(){
if(tos == 0){
cout << "Stack is empty\n";
return 0;
}
tos--;
return stck[tos];
}
void showstack(stack o){
char c;
while(c == o.pop()) cout << "c: " << c;
cout << "\n";
}
stack loadstack(){
stack t;
char c;
for(c = 'a'; c <= 'z'; c++)t.push(c);
return t;
}
int main(){
stack s1;
s1 = loadstack();
showstack(s1);
return 0;
}
Constructing a stack
Constructing a stack
[Finished in 0.3s]
恐らく、loadstack()が読み込めていないのかなと思うのですが、、、
よろしくお願い致します!