首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

请问 字符读取的有关问题 50分

2012-03-06 
请教 字符读取的问题 50分ifstreamIn( D:\\StrTest\\baidu.txt )ofstreamOut( D:\\StrTest\\Mid.txt

请教 字符读取的问题 50分
ifstream   In( "D:\\StrTest\\baidu.txt ");
ofstream   Out( "D:\\StrTest\\Mid.txt ");

vSpaceBuf   =   " ";
while(!In.eof())
{
vChar   =   In.get();

if(vChar   ==   ' < ')
        vStreamBuf   < <   '\n ';

if(vChar   <   0x20)
continue;
  if(vChar   ==   ' < ')
vStreamBuf   < <   '\n ';

vStreamBuf   < <   vChar;
  if(vChar   ==   '> ')
    vStreamBuf   < <   '\n ';
}
我的程序是逐个读取字符,遇到一对 " <...> "   在其后加 "\n "   ,但是我想   在遇到   (..)中的 " <...> "时不在 <..> 后加 "\n ",例如:( ' <a   href= "http://passport.baidu.com/?login&tpl=mn&u= '+escape(location.href)+ ' "> 登录 </a> ')   直接把这一条读进去,而不对 " <> "处理,
我该怎么做   ??

[解决办法]
状态图。。。
前几天我刚做了类似lz的东西,我的是统计C++文件里有多少注释行。这里要用到栈。
[解决办法]
void ReadString(char *str)
{
int len = strlen(str);
int tag = 0;
for( int i = 0 ; i < len ; i++)
{
char ch = str[i];
if( ch != '( ' && ch != ') ')
{
if( ch == '> ' && tag == 0 )
{
std::cout < <ch < <endl;
}
else
std::cout < <ch;
}
else
{
if( ch == '( ' )
tag = 1;
else if( ch == ') ' )
tag = 0;
std::cout < <ch;
}
}
}
//关键是加个标记
[解决办法]
void main()
{
ifstream In( "D:\\StrTest\\baidu.txt ");
ofstream Out( "D:\\StrTest\\Mid.txt ");

int cnt = 0;

while(!In.eof())
{
char ch = In.get();

if (ch == ' ')
continue;

if (ch == '( ')
cnt++;

if (ch == ') ')
cnt--;

if (cnt != 0)
Out < <ch;
else
{
if (ch == '> ' || ch == ' < ')
Out < < '\n ';
else
Out < <ch;
}

}

}

热点排行