structeres i c

Tags:    c++

<< < 123 > >>
Hej jeg har fået et program jeg skal skrive, men ved ikke hvordan jeg skal skrive det, jeg er igang med opg 1.

link til opg:
http://peecee.dk/upload/view/164191


link til inputfil:
http://peecee.dk/upload/view/164190

den kode jeg har skrevet:

Fold kodeboks ind/udKode 




Fold kodeboks ind/udKode 


Jeg har rettet lidt i dit program, så det nu kan oversættes.
Resten er vist mest et spørgsmål om at tilføje et par betingelser inden du skriver ud, f.eks. check for punktum, hvis du læser et, så skriv et komma ud i stedet.



Jeg har skrevet lidt videre på opgaven, men i opgaven skal den fjerne overflødige tegn, så der kun er et mellemrum mellem tallene. Hvilket betyder at jeg skal ha' skrevet endnu en if-sætning, men hvordan gør jeg det?
(Har ændret navnet på input-filen)

Fold kodeboks ind/udKode 




retter lige det jeg skrev, så det giver mening :)

"Jeg har skrevet lidt videre på opgaven, men i opgaven skal der fjernes de overflødige tegn, så der kun er et mellemrum mellem tallene. Hvilket betyder at jeg skal ha' skrevet endnu en if-sætning, men hvordan gør jeg det?
(Har ændret navnet på input-filen)"



Du kan checke om tegnet er et mellemrum:

if(ch == ' ')

Hvis det er det, skal du kun skrive det første ud. Det holder du styr på ved at huske på om det sidste tegn var et mellemrum, dertil skal du nok bruge en variabel.



Hvordan kan jeg få den til at huske sidste tegn og hvorfor skal jeg bruge en variabel? :S
er ikke helt forstået.



Man kunne gøre noget i stil med:

char lastCh = 0;

while((ch = fgetc(pt1)) != EOF)
{
if(ch == ' ' && lastCh == ' ')
{ /* Hop over gentagne mellemrum */
}
else
{
fprintf(pt2,"%c",ch);
}
lastCh = ch;
}



Har prøvet med den while løkke, det virker ikke, den fjerner ikke de udnødvendige mellemrum :S



Lad os se din kode.



Fold kodeboks ind/udKode 




Du skal fjerne den første while loop for at få den til at fjerne de overflødige tegn, ellers læser hele filen inden den når til den loop der skal fjerne de overflødige tegn.

Men så laver den ikke punktum om til komma. For at gøre begge dele, skal du samle de to while løkker i én.



<< < 123 > >>
t