Ich habe Code geschrieben Kommentare von einer C-Programm-Datei zu entfernen, und die Ausgabe auf der Konsole aus:Entfernen Kommentare aus einer Datei und druckt auf Konsole
#include <stdio.h>
#include <stdlib.h>
void incomment(FILE *fp);
void rcomment(int c, FILE *fp);
void echo_quote(int c, FILE *fp);
int main() {
FILE *fp;
fp = fopen("temp.c", "r");
int c;
while ((c = getc(fp)) != EOF) {
rcomment(c, fp);
}
return 0;
}
void incomment(FILE* fp) {
int c, d;
c = getc(fp);
d = getc(fp);
while (c != '*' && d != '/') {
c = d;
d = getc(fp);
}
}
void echo_quote(int c, FILE *fp) {
int d;
putchar(c);
while ((d = getc(fp)) != c) {
putchar(d);
if (d == '\\')
putchar(getc(fp));
}
putchar(d);
}
void rcomment(int c, FILE *fp) {
int d;
if (c == '/') {
if ((d = getc(fp)) == '*')
incomment(fp);
else
if (d == '/') {
putchar(c);
rcomment(d, fp);
} else {
putchar(c);
putchar(d);
}
} else
if (c == '\'' || c == '"')
echo_quote(c, fp);
else
putchar(c);
}
jedoch für die folgende Eingabe:
#include<stdio.h>
/* Author : XYZ
* Date : 21/1/2016
*/
int main()
{
int a; ///variable a
printf("/*Hi*/");
return 0;
}
OUTPUT:
#include<stdio.h>
Date : 21/1/2016
*/
int main()
{
int a; ///variable a
printf("/*Hi*/");
return 0;
}
Könnte jemand den Fehler im Code hinweisen. Es scheint gut zu funktionieren für Kommentare in Anführungszeichen. Aber nicht für die einzeiligen Kommentare.
„Könnte jemand den Fehler im Code hinweisen“. Verwenden Sie einen Debugger, um das herauszufinden. Den Debugger zu benutzen, wird Ihre Zeit wert sein und für Sie nützlicher sein als jemand, der es nur für Sie debuggt. – kaylum
Seitenknoten: Schreiben Sie niemals ein Datum in diesem Format. Dies kann falsch gelesen werden, ist der Tag weniger als 32, besser verwenden Sie ISO8601. – 12431234123412341234123