读书人

怎么从文本里一个一个读出字符

发布时间: 2012-02-27 10:00:22 作者: rapoo

如何从文本里一个一个读出字符
char data;
char *filename = "007.txt ";
ifstream in(filename);
in> > data;
cout < <data < <endl;
这段代码只能读出一个字符显示在屏幕上,怎么才能实现让他一个一个显示在屏幕上呢?
目的是要对文本里的字符进行统计?

[解决办法]
//看看这个程序,是用类写的
#include <iostream>
#include <fstream>
using namespace std ;

classCFile
{
private:
fstream ouf ;
public:
CFile() ;
~CFile() ;
voidCFile_write() ;
} ;
CFile::CFile()
{
char *filename = "007.txt ";

ouf.open( filename , ios::in , 0 ) ; //打开文件
if( !ouf )
{
cout < < "Can 't create file! " ;
}
return;
}
CFile::~CFile()
{
ouf.close() ; //关闭文件
}
voidCFile::CFile_write() //输出文件函数
{
charch ;
intcount = 0 ; //统计字符数的变量
ouf.seekg( 0 ) ; //把文件读指针移到首位
ouf.get( ch ) ; //获得一个字符
while( !ouf.eof() ) //直到字符为空才退出
{
count++ ;
cout < < ch ; //输出字符
ouf.get( ch ) ; //在读取下一个字符
}
cout < < "字符数: " < < count ;
return ;
}
intmain()
{
CFileD ;
D.CFile_write() ;
cout < < endl ;
return0 ;
}
[解决办法]
#include <fstream>
#include <iostream>
#include <cstdlib>

using namespace std;

int main(int argc, char *argv[])
{
char data;
int count[26]={0}, i, sum=0;
ifstream in( "data.txt ");

while(!in.eof())
{
in> > data;
cout < <data;
if(data> = 'a ' && data <= 'z ')
count[data- 'a ']++;
if(data> = 'A ' && data <= 'Z ')
count[data- 'A ']++;
}
cout < <endl;
for(i=0; i <26; i++)
{
//cout < < "Count " < < 'a '+i < < " or " < < 'A '+i < < ": " < <count[i] < <endl;
printf( "Count \ '%c\ '/\ '%c\ ': %d.\n ", 'a '+i, 'A '+i, count[i]);
sum+=count[i];
}
cout < < "Total is: " < <sum < <endl;

system( "pause ");
return 0;
}

楼主自己看看吧,统计字符 ...

读书人网 >C++

热点推荐