问题描述
我正在用C ++进行算法和数据结构练习,该练习要求读取一个十个单词的txt文件,然后使用不带STL,类或结构的堆栈以保留顺序显示它们。所有代码看起来都不错,但是当我实际运行它时什么也没显示。
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int mindex = -1;
string word[10];
void push(string p);
void top();
void pop();
bool isEmpty();
int main()
{
string filename,eli;
cout << "Please input a file name" << endl;
cin>>filename;
ifstream inData;
inData>>eli;
inData.open(filename);
if (!inData)
{
cerr<< "Error opening : " << filename << endl;
return -1;
};
while (inData >> eli)
{
if(inData.fail()){
break; }
else push(eli);
}
while (!isEmpty()){
top();
pop();
}
inData.close();
return 0;
}
void push(string p){
index++;
word[mindex] = p;
}
void pop(){
mindex--;
}
void top(){
cout<<word[mindex]<<" ";
}
bool isEmpty(){
return (mindex<0);
}
解决方法
这里有一些错误和假设可能会出错。我只会专注于眼前的事物。
"6.months" => 6.months
"6.years" => 6.years
除非您完全确定不会超过10个字,否则应该在某处检查是否高于10。