2


ファイルから構造化されたデータ (グラフやバイナリ ツリーなど) を読み込もうとしていますが、インデント付きの人間が読み取り可能なデータ (XML なし) に保存されています。

例えば

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

は次のように書かれています。

a
    b
        d
        e
    c
        f
        g

行頭からの文字「\ t」の連続発生回数をカウントする関数がc ++にありますか?
正規表現を使用する必要がありますか?
行頭から '\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 に答える