2


我正在尝试从文件中读取结构化数据(如图形或二叉树),它保存在带有缩进的人类可编辑数据(无 XML)中。

例如

       a
     /    \
    b      c
   / \    /  \
  d   e  f    g

写成:

a
    b
        d
        e
    c
        f
        g

c++ 中是否有一些函数可以从行首计算 char '\t' 连续出现的次数?
我应该使用正则表达式吗?
我需要计算从行首到第一个不同字符的 '\t' (如果有)的数量 '\t' 。

先感谢您

4

1 回答 1

0

用 getline 读取一行,然后遍历它检查每个字符是否有 '\t':

#include <iostream>
#include <fstream>
#include <string>

using namespace std;

int main()
{
    ifstream infile("test.dat");    
    string line;
    while (getline(infile, line))
    {   
        cout << line << endl;
        int tab_cnt = 0;    
        for (int ix = 0; ix < line.size(); ++ix)
            if (line[ix] == '\t')
                ++tab_cnt;
        cout << tab_cnt << endl;
    }   
}
于 2013-09-15T14:49:38.630 回答