[ vlaga @ 01.03.2006. 01:20 ] @
Hocu da napisem program u C-u koji brise komentare iz nekog *.c fajla ukljucujuci i */ znakove, i da kreira novi fajl sa tim izmenama. Uspelo mi je samo da brise * i /. Nemam ideju kako da obrisem i sam sadrzaj komentara, niti kako da napravim novi fajl. Tek sam poceo da ucim rad sa fajlovima, tako da bi mi pomoc mnogo znacila. Unapred hvala. Evo dokle sam stigao:
#include <stdio.h>
FILE *fp;
main()
{

int inChar;
if ((fp=fopen("D:\fajl.c", "r"))==NULL)
{
printf("\n\n*** Can not open ***\n");
}
inChar = getc(fp);
while (inChar != EOF)
{
if(inChar=='/' || inChar=='*')
{
inChar=' ';

}


putchar(inChar);
inChar = getc(fp);

}
fclose(fp);
}
[ klichko @ 01.03.2006. 06:27 ] @
Code:
if(inChar=='/' || inChar=='*')


Ova linija ti nije dobra, u C/C++-u komentari mogu da pocinju sa '//' ili '/*' sto znaci da treba da proveris da li je karakter '/', a njemu sledeci '/' ili '*' i u tom slucaju se radi o pocetku komentara, ovo sto si ti napisao ce u sustini pored pocetka komentara izbrisati i sve operacije deljenja i mnozenja u programu. Ukoliko se radi o '//' treba da brises sve karaktere u toj liniji tj. dok ne naidjes na enter, u drugom slucaju brises sve karaktere do pojave sekvence '*/', u oba slucaja ti je najbolje da koristis while ili do-while petlju.