| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 743 人关注过本帖
标题:求高手设计一文本阅读器!!!!文本阅读器!!!!!!!!!!!再多两天 ...
只看楼主 加入收藏
小白兰
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-9-6
结帖率:0
收藏
已结贴  问题点数:20 回复次数:5 
求高手设计一文本阅读器!!!!文本阅读器!!!!!!!!!!!再多两天就要交作业了!!求大神!!!!
各位大神,各位高手,小弟在这求你们帮忙了!!!这是小弟的作业,要求用VC++写啊!!!!!!!!!!!希望能尽快回复我,也希望大神们能把写的程序讲解给小弟听,我是新手啊
下面是题目:
    设计一文件阅读器, 可以一次一屏(20或22行)显示文件内容, 每次显示完一屏内容后, 提示使用者键入一控制字符以控制屏幕翻滚。如字符'n'显示下一屏, 字符'p'返回上一屏, 字符'q'结束阅读。
在这谢谢各位了!!!!

[ 本帖最后由 小白兰 于 2012-9-6 16:42 编辑 ]
搜索更多相关主题的帖子: 设计 阅读器 
2012-09-06 16:36
小白兰
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-9-6
收藏
得分:0 
这个程序代码自己改了下,还是运行不了啊,求大神!!!!

#include <iostream>
#include <fstream>
#include <string>
#include <vector>
using namespace std;
class TxtReader
{
    private:        
        ifstream txtfile;
        static const int linesize;
        static const int rowsize;
        vector<fstream::streampos>screenpos;
    public:
        TxtReader(string name);
        void LastScreen();
        void NextScreen();
        void ShowContent();
        ~TxtReader();
};
const int TxtReader::linesize = 22; //一屏22行
const int TxtReader::rowsize = 70; //一行70个字符
TxtReader::TxtReader(string name)
{
    txtfile.open(name);
    if(!txtfile)
    {
        cout << "Open file failed!" << endl;
        return;
    }
    screenpos.push_back(txtfile.tellg());
    ShowContent();
}
TxtReader::~TxtReader()
{
    txtfile.close();
}
void TxtReader::ShowContent()
{
    char tmp[rowsize+1];
    int line = 0;
    while((!txtfile.eof())&&(line!=linesize))
    {
        txtfile.getline(tmp, rowsize+1);
        line += 1;
        cout << tmp << endl;
    }
}
void TxtReader::NextScreen()
{
    if(txtfile.eof())
        return;
    screenpos.push_back(txtfile.tellg());
    ShowContent();
}
void TxtReader::LastScreen()
{
    if(screenpos.size() == 1)
        return;
    txtfile.seekg(screenpos.back());
    screenpos.pop_back();
    ShowContent();
}
int main()
{
    cout << "Input the file name to open:" << endl;
    string filename;
    cin >> filename;
    TxtReader reader(filename);
    char control;
    while(cin >> control)
    {
        if(control == 'n')
            reader.NextScreen();
        if(control == 'p')
            reader.LastScreen();
        if(control == 'q')
            break;
    }
}
2012-09-06 16:50
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:0 
把构造函数里的 txtfile.open(name); 改成 txtfile.open(name.c_str()); 就可以运行了。
不过你的程序还有其它错误,你也许还得再自己调试调试。
2012-09-06 22:42
小白兰
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-9-6
收藏
得分:0 
回复 3楼 pangding
谢谢大神!!
2012-09-06 23:16
A514968885
Rank: 2
等 级:论坛游民
帖 子:2
专家分:10
注 册:2012-9-7
收藏
得分:10 
你这个好像还是有问题啊
求完美答案
2012-09-07 21:03
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:10 
回复 5楼 A514968885
你觉得你现在的程序主要是什么问题?
2012-09-08 00:08
快速回复:求高手设计一文本阅读器!!!!文本阅读器!!!!!!!!!!!再多 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021333 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved