C-Programm Anzahl Kommentarzeilen (// und /* */)

Ich brauche ein Programm zum zählen der Zeilen ein .txt-oder .c-Datei und kehren Sie mir die folgenden Dinge:

Datei:

Einfache Bemerkung: N-Linien

Mehrzeiliger Kommentar: N-Linien

Total Zeilen: N Zeilen

Habe ich dieses:

if (pFile != NULL) 
{
    do { 
    c = fgetc(pFile);

    if (c == '\n') n++;

    } while (c != EOF);

Und ich weiß nicht, wie zu implementieren, der rest von ihm.

Ich habe versucht, mit der strstr () - Funktion als gut, habe nicht bekommen, weder.

  • das ist ein job für perl, c nicht.
  • Der beste Weg, dies zu tun ist, schreiben Sie einen parser, kann es nicht ganz korrekt mit nur Charakter-Prüfung.
  • Sie müssen schreiben Sie einen parser basierend auf der c-standard (nur die ersten paar übersetzungen Phasen. andernfalls werden Sie verbringen endlose Zeit aufspüren von Fällen wie "dies sind die Kommentar-delims /* // */". Auch trigraphs-und line-Fortsetzungen sind nicht dein Freund.
  • Dies kann ein schwieriges problem, abhängig von einer Reihe von Dingen, die Sie brauchen, um Spur zu halten, beim Lesen 1) // to EOL Kommentare, 2) /* to */ Kommentare 3) "..." text, um zu wissen, Kommentare können nicht starten 4) '...' char-Konstanten, um zu wissen, Kommentare können nicht starten Sie entweder 5) Angenommen, Sie #include-Dateien sind gut erzogen (nicht am Ende in einem offenen Kommentar, zitiert string, etc). 6) Andere gepostet trigraphs, Digraphen, die nicht-ASCII-Zeichen. Andere als, dass, Sie ein Stück Kuchen.
InformationsquelleAutor Morilon | 2013-05-30
Schreibe einen Kommentar