独習C++のloadstack()関数

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
oshiri

独習C++のloadstack()関数

#1

投稿記事 by oshiri » 11年前

質問させていただきます。
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()が読み込めていないのかなと思うのですが、、、
よろしくお願い致します!

アバター
usao
記事: 1889
登録日時: 12年前
連絡を取る:

Re: 独習C++のloadstack()関数

#2

投稿記事 by usao » 11年前

おそらくここが誤りでしょう.
line46
> c == o.pop()

oshiri

Re: 独習C++のloadstack()関数

#3

投稿記事 by oshiri » 11年前

> usao さん

ありがとうございます!
解決しました。
基本的なことでお恥ずかしいです。

早い回答ありがとうございました!

閉鎖

“C言語何でも質問掲示板” へ戻る