HjelpeMons Skrevet 3. oktober 2013 Del Skrevet 3. oktober 2013 Hei jeg er relativt fersk med C-programmering og har fått en skoleoppgave. Har nesten løst den, men sliter med følgende problem: Hvordan kan jeg sentrere innholdet fra en printf uten å legge inn noe innhold som skal gjøre det i printf? Jeg har laget en loop som skriver ut fra printf flere ganger, så holder ikke med et par trykk på space, siden det da vil påvirke alle andre gangene denne loopen går. Og oppgaven sier også klart at jeg ikke kan skrive inn det som skal komme ut inn i printf, så trenger loopen. Noen forslag? Lenke til kommentar
GeirGrusom Skrevet 4. oktober 2013 Del Skrevet 4. oktober 2013 (endret) Bare print ut alle mellomrommene som skal stå foran teksten med en for-løkke. const int numSpaces = max(0, screenWidth / 2 - strlen(TextToPrint) / 2); int i; for(i = 0; i < numSpaces; i++) printf(" "); printf("%s\n", TextToPrint); Endret 4. oktober 2013 av GeirGrusom Lenke til kommentar
Lycantrophe Skrevet 4. oktober 2013 Del Skrevet 4. oktober 2013 Og til det bruker man selvfølgelig putc :--) Lenke til kommentar
HjelpeMons Skrevet 4. oktober 2013 Forfatter Del Skrevet 4. oktober 2013 Takker for tips Skjønte ikke helt delen: const int numSpaces = max(0, screenWidth / 2 - strlen(TextToPrint) / 2); Av koden din, men skjønte iallefall poenget, og det vil nok funke veldig bra. Skal teste det ut nå, og det vil nok garantert funke, så takk for hjelpen Lenke til kommentar
Thomas. Skrevet 5. oktober 2013 Del Skrevet 5. oktober 2013 Takker for tips Skjønte ikke helt delen: const int numSpaces = max(0, screenWidth / 2 - strlen(TextToPrint) / 2); Av koden din, men skjønte iallefall poenget, og det vil nok funke veldig bra. Skal teste det ut nå, og det vil nok garantert funke, så takk for hjelpen Max returnerer den høyeste av argumentene den får. Altså, hvis skjermbredde = 20, og lengde på tekst = 6. Får vi: 20 / 2 = 10 og 6 / 2 = 3. Antall mellomrom blir 10 - 3 = 7. 7 mellomrom + 6 tegn + 7 mellomrom = midtstillt Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå