Ga naar inhoud

Hoofdletters tellen gaat niet :(


Aanbevolen berichten

Ik ben begonnen om C te leren, en ben al een paar kleine foujtes in een boek tegen gekomen die ik zelf kon zien. Alleen loop ik nu tegen een programma aan waar ik geen raad mee weet. Het is de bedoeling dat het een tekstbestand(ascii) leest en de hoofdletters telt en dit dan vermeld in in een ander bestand. Het is een klein programma, dus ik zet het in zijn geel in de post. Hier is het dan: ------------------------------------- #include <stdio.h> main(int argc,char *argv[]) { int c,i,letter[26]; FILE *ifp,*ofp; if (argc!=3){ printf("n%s%s%snn%sn%snn", "Gebruik: ",argv[0]," infile outfile", "De hoofdletters in infile worden geteld.", "De resultaten komen in outfile terecht."); exit(1); } ifp=fopen(argv[1],"r"); ofp=fopen(argv[2],"w"); for (i=0;i<26;++i) letter[i]=0; while((getc(ifp))!=EOF) if (c>='A' && c<='Z') ++letter[c-'A']; for (i=0;i<26;++i) { if (i%6==0) putc('n',ofp); fprintf(ofp," %c : %5d ",'A'+i,letter[i]); } putc('n',ofp); } ------------------------------------- Weet iemand wat er niet klopt? Alvast bedankt! Remy
Link naar reactie
[quote:edb24a2c95] while((getc(ifp))!=EOF) if (c>='A' && c<='Z') ++letter[c-'A']; [/quote:edb24a2c95] In het if-statement doe je een test met c terwijl die nooit een waarde krijgt toegewezen. Wijzig [b:edb24a2c95]while((getc(ifp))!=EOF)[/b:edb24a2c95] in [b:edb24a2c95]while((c = getc(ifp)) !=EOF)[/b:edb24a2c95].
Link naar reactie
[quote:748afdb142] Op 08-03-2002 1:23, schreef remybosch: Wijzig while((getc(ifp))!=EOF) in while((c = getc(ifp)) !=EOF). Thanx!! Het werkt!! :smile: Remy [/quote:748afdb142] Dat krijg je er van als je als beginneling zo C probeert te schrijven ... Als je alle statements op eigen regel had gezet was het meteen duidelijk geweest. [code:1:748afdb142] c = getc(ifp); while(c != EOF) { if (c >= 'A' && c <= 'Z') letter[c - 'A']++; c = getc(ifp); } [/code:1:748afdb142]
Link naar reactie

Om een reactie te plaatsen, moet je eerst inloggen

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

×
×
  • Nieuwe aanmaken...