我不知道一个错误,^_^
错误提示:
--------------------Configuration: 5 - Win32 Debug--------------------
Linking...
LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16
Debug/5.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
5.exe - 2 error(s), 0 warning(s)
源码:
#include <iostream.h>
#include <fstream.h>
template <class T>
class node
{
public:
T data;
node *next;
};
template <class T>
class stack
{
private:
node <T> *head;
public:
stack(){head=NULL;}
void push(T d);
T popup();
void find(T d);
void show();
void show(T temp);
void save();
void open();
node *gethead()
{
return head;
}
void dele()
{
if(head!=NULL)
popup();
cout<<"堆栈已经被清空!"
}
};
template <class T>
void stack<T>::push(T d)
{
node <T> *p;
p=new node <T>;
p->data=d;
p->next=head;
head=p;
}
template <class T>
T stack<T>::popup()
{
int temp;
node <T> *p;
temp=head->data;
p=head;
head=p->next;
delete p;
return temp;
}
template <class T>
void stack <T>::find(T d)
{
int count=0;
node <T> *p;
p=head;
while(p->next!=NULL)
{
if(p->data==d)
count++;
p=p->next;
}
delete p;
cout<<"一共有"<<count<<"个相同的元素。"<<endl;
}
template <class T>
void stack <T>::show()
{
T s[100];
int a=0;
node <T> *p;
p=head;
while(p!=NULL)
{
s[a]=p->data;
a++;
p=p->next;
}
cout<<"当前堆栈中的数据及顺序:"<<endl;
for(;a>0;a++)
cout<<s[a]<<endl;
cout<<"栈顶指针的当前位置为"<<head<<endl;
cout<<"栈顶指针刚才的位置为"<<head->next<<endl;
}
template <class T>
void stack <T>::show(T temp)
{
T s[100];
int a=0;
node <T> *p;
p=head;
while(p!=NULL)
{
s[a]=p->data;
a++;
p=p->next;
}
cout<<"当前堆栈中的数据及顺序:"<<endl;
for(;a>0;a++)
cout<<s[a]<<endl;
cout<<"栈顶指针的当前位置为"<<head<<endl;
cout<<"栈顶指针刚才的位置为"<<temp<<endl;
}
template <class T>
void stack <T>::save()
{
fstream myfile;
myfile.open("c:\\f1.txt",ios::out); //以写方式打开文件f1.txt
node <T> *p;
p=head;
while(p!=NULL)
{
myfile<<p->data<<endl;
p=p->next;
}
myfile.close();
cout<<"文件f1成功保存!"<<endl;
}
template <class T>
void stack<T>::open()
{
void dele();
char a[100],b[20];
T d;
cout<<"请输入文件的路径:"<<endl;
cin>>a[100];
cout<<"请输入文件打开方式:"<<endl;
cin>>b[20];
fstream myfile;
myfile.open("a[100]",b[20]);
while((d=myfile.get())!=EOF)
{
void push(T d);
}
cout<<"成功读取数据并且建立堆栈!";
myfile.close();
}
void main()
{
stack <int> mystack;
int x;
cout<<"现在开始进行进栈操作,"<<"请输入要加到栈中的元素值:"<<endl;
cin>>x;
while(x!=0)
{
mystack.push(x);
cin>>x;
}
mystack.show();
cout<<"现在开始进行出栈操作:"<<endl;
x=mystack.popup();
mystack.show(x);//完成出栈操作并且显示当前堆栈中的数据及顺序,栈顶指针的当前位置及变化情况
cout<<"请输入您要查找的数据:"<<endl;
cin>>x;
mystack.find(x);
cout<<"现在开始保存文件操作:"<<endl;
mystack.save();
cout<<"现在开始打开文件操作:"<<endl;
mystack.open();
cout<<"OK!";
}