|
|
我是新手,刚开始学C++。
最近在看<Essential C++>,第一章讲到了<fstream>,<vector>和<string>,突然冲动想用这几个弄个类似聊天工具的通讯程序。。。。
大家别取笑,就是尝试一下,思路如下:
利用<fstream>能进行文档输出输入,用它来创建一个文件用来储存对话内容,
编两个一样的程序都指向这个文档进行信息的存读,进而实现简单的通讯。
可是对文档进行输出输入是实现了,但是一加上<vector>就不行,不知哪里弄错了,运行到一半就提示错误。。。郁闷
大家帮忙看看啊!
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
using namespace std;
int main()
{
int cr=0,pp=1,temp=0;
string text;
vector<string> file;
vector<int> num1;
vector<int> num2;
ifstream idata("F:\\data_m.txt"); //第二个程序就是把这两个地址颠倒一下
ofstream odata("F:\\data_q.txt");
if(!odata|!idata)
cerr<<"读取意外。。。程序将退出。。。"<<endl;
else
{
cout<<"程序读取正常.(输入quit退出)\n";
while(idata>>text)
file.push_back(text);
cout<<"最近的聊天记录:\n";
for(;cr<file.size();++cr)
cout<<file[cr]<<' ';
cout<<"\n对话开始。。。。。。\n"<<"请输入:\n";
for(; ;pp++)
{
cout<<"M:";
odata<<"M:";
cin>>text;
file.push_back(text);
num1[pp]=file.size();
for(int cr=0;cr<file.size();++cr)
{
temp=file.size()-num1[pp-1];
odata<<file[temp]<<' ';
cout<<file[temp]<<' ';
}
idata.seekg(pp+1);
idata>>text;
file.push_back(text);
num2[pp]=file.size();
if(file[0]=="M:")
{
cout<<"Q:";
for(int cr=0;cr<file.size();++cr)
{
temp=file.size()-num1[pp-1];
cout<<file[temp]<<' ';
}
}
if(text=="quit")
break;
cout<<endl;
odata<<endl;
}
system("pause");
return 0;
}
}
[em14] [em20] |
|