游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1814|回复: 4

请教高手!看看这样怎么弄啊~~ 先谢了!

[复制链接]

2

主题

7

帖子

7

积分

新手上路

Rank: 1

积分
7
发表于 2007-8-22 03:44:00 | 显示全部楼层 |阅读模式
我是新手,刚开始学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]

2

主题

7

帖子

7

积分

新手上路

Rank: 1

积分
7
 楼主| 发表于 2007-8-22 03:47:00 | 显示全部楼层

Re: 请教高手!看看这样怎么弄啊~~ 先谢了!

我的QQ:595920004

邮箱:joopererer@yahoo.com.cn

先去睡了,困死。。。弄不出来又不甘心~~

大家帮帮忙!

2

主题

7

帖子

7

积分

新手上路

Rank: 1

积分
7
 楼主| 发表于 2007-8-22 08:10:00 | 显示全部楼层

Re: 请教高手!看看这样怎么弄啊~~ 先谢了!

怎么没人理我....打击啊~~~

[em4] [em21]

103

主题

1432

帖子

1458

积分

金牌会员

Rank: 6Rank: 6

积分
1458
QQ
发表于 2007-8-22 08:41:00 | 显示全部楼层

Re:请教高手!看看这样怎么弄啊~~ 先谢了!

代码风格不太好。

不要使用多余的变量,临时变量尽量在使用的时候在定义。
低级的代码段,具体用意不明,应该补充注释说明
尽量用这个形式:
for(int i =0; i < 100; ++i)

vector<int> 没有填充内容,不能使用下标访问元素

76

主题

1100

帖子

1107

积分

金牌会员

Rank: 6Rank: 6

积分
1107
发表于 2007-8-23 00:09:00 | 显示全部楼层

Re:请教高手!看看这样怎么弄啊~~ 先谢了!

过程型 C++

航天说得正确;
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-4-5 07:44

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表