注册 登录
编程论坛 VC++/MFC

一个关于文件的操作,有问题,大家帮忙看看,谢谢了!!!

Invariably 发布于 2011-06-09 23:28, 535 次点击
大家帮我看看这个对文件的操作是不是有问题,就是划线和打问号的地方,为什么后面的得不出结果呢?是不是这个循环的条件有问题?如果是,该怎么改?谢谢 各位了!!!
#include<iostream>
#include<fstream.h>
#include<stdlib.h>
#include<string.h>
void timesprint(int*times)
{//输出字符以及它在文件中出现的频度
    cout<<"字符-------"<<"频度"<<endl;
    for(int i=0;i<94;i++)
    {
        cout<<(char)(i+33)<<"------"<<*(times+i)<<endl;
    }
}
int main()
{
    const count=94;//对ascii码为33到126的字符进行编码
    int *times=(int*)malloc(94*sizeof(int));//为存储字符出现的频度分配内存空间
    for(int i=0;i<94;i++)
    {
        *(times+i)=0;
    }//频度数组初始化
    fstream infile,outfile;
    infile.open("wenjian.txt",ios::in);
    if(!infile)
    {
    cout<<"wenjian.txt can't be open"<<endl;
    abort();
    }
    cout<<"文件打开了"<<endl;
    char a;//用来暂存读进来字符
    while(infile.get())//?????????
    {
         a=infile.get();
          cout<<a;
         (*(times+((int)a-33)))++;
    }//统计文件中的字符频度
    cout<<"统计完毕"<<endl;
    timesprint(times);
    return 0;
    free(times);
}

5 回复
#2
wyhaoshuai2011-06-10 09:02
char a;
infile>>a;
while(!infile.eof())
{
cout<<a;
(*(times+((int)a-33)))++;
infile>>a;
}
#3
记叙、继续2011-06-10 11:52
楼主,循环不是用while吗!
#4
Invariably2011-06-10 12:44
二楼,能否解释一下。。。。为什么要改成eof(),这一块我实在是不懂啊!
#5
Invariably2011-06-10 12:45
三楼,循环是用while啊,有什么问题吗?
#6
wyhaoshuai2011-06-10 15:29
eof就是end of file的简写;
用来判断是否是文件的结束。
1