免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1838 | 回复: 2
打印 上一主题 下一主题

[C++] 我写的一个基于C++的文件分析代码,大家帮忙看一下 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-01-17 12:26 |只看该作者 |倒序浏览
代码如下,输出结果是:
[LogServer]-> ./a.out

[LogServer]->
应该输出的结果是100519342, 为什么只输出什么都没有呢?
但是CRC里面的结果是正确的。

#include <iostream>
#include <vector>
#include <string>
#include <fstream>
using namespace std;

int main(void)
{
  vector<string> v;
  char input;
  ifstream in("input");
  if(in==NULL)
  {
    cout<<"can not open the file"<<endl;
    return -1;
  }

  string line, total_line;
  while(getline(in, line))
     v.push_back(line);

  for(int i=0; i<v.size()-1; i++)
  {
    total_line = total_line + v;
  }

  int position = total_line.find("CRC");

  int i;
  string CRC, CRC_rev;

  for(i=0; ; i++)
  {
    if(('0'<=total_line[position-i-2]) && (total_line[position-i-2]<='9'))
      CRC = total_line[position-i-2];
    else
      break;
  }

  for(int j=0; j<=i; j++)
  {
    CRC_rev[j] = CRC[i-j];
  }

  cout<<CRC_rev<<endl;
}


[ 本帖最后由 liht1981 于 2008-1-17 12:49 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2008-01-17 13:24 |只看该作者

回复 #1 liht1981 的帖子

问题已经解决,但是导致这个问题的原因还没弄清楚,看来把string对象像数组一样操作是有问题的。

#include <iostream>
#include <vector>
#include <string>
#include <fstream>
using namespace std;

int main(void)
{
  vector<string> v;
  char input;
  ifstream in("input");
  if(in==NULL)
  {
    cout<<"can not open the file"<<endl;
    return -1;
  }

  string line, total_line;
  while(getline(in, line))
     v.push_back(line);

  for(int i=0; i<v.size()-1; i++)
  {
    total_line = total_line + v;
  }

  int position = total_line.find("CRC");

  int i=0;
  string CRC, CRC_rev;

  while(('0'<=total_line[position-i-2]) && (total_line[position-i-2]<='9'))
    i++;

  CRC = total_line.substr(position-1-i, i);
  cout<<CRC<<endl;
}

[ 本帖最后由 liht1981 于 2008-1-17 13:27 编辑 ]

论坛徽章:
0
3 [报告]
发表于 2008-01-18 10:40 |只看该作者
for(int i=0; i<v.size()-1; i++)
  {
    total_line = total_line + v;
  }
是什么意思
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP