Чтение количества строк кода

0

У меня есть куча файлов, написанных в основном на одном языке программирования, а также на некоторых других. Они находятся в разных папках, но мало и целеустремлены.

Я хочу создать программу, в которой указано, сколько строк кода есть. Я знаю, что могу сделать это для одного файла, просто так:

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

int main()
{
    ifstream f("file.txt");
    int n = 0, aux;
    string line;
    while (getline(f, line))
        n++;
    cout << endl << n << " lines read" <<endl;
    f.close();
}

Но как я могу "просмотреть" все файлы и папки и прочитать их все? Чтобы сделать это явно, для каждого из них звучит ужасно для меня.

  • 0
    Вы должны использовать C ++ для этого? Есть лучшие языки для этой цели.
  • 0
    @waTeim Я также мог бы использовать Java или PHP, но я не знаю больше языков.
Показать ещё 1 комментарий
Теги:
ifstream

1 ответ

0

Объединив то, что было написано другими, это будет ваша программа с использованием Qt:

#include <iostream>
#include <fstream>
#include <QApplication>
#include <QDir>
#include <QString>

using namespace std;

int countFile (QString path)
{
    ifstream f (path.toStdString().c_str());
    int n = 0;
    string line;
    while (getline(f, line))
        n++;
    return n;
}

int countDir (QString path)
{
    int n = 0;
    QDir dir (path);
    if (dir.exists())
    {
        QFileInfoList list = dir.entryInfoList ();
        for (int i = 0; i < list.size(); ++i)
        {
            if (list[i].isDir())
                n += countDir (list[i].absoluteFilePath());
            else
                n += countFile (list[i].absoluteFilePath());
        }
    }
    return n;
}

int main(int argc, char **argv)
{
    QApplication a(argc, argv);
    cout << endl << countDir ("path/to/dir") << " lines read" <<endl;
    return 0;
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню