Gå til innhold

C++ spm rundt struct o.l ?


Anbefalte innlegg

Hei sitter litt fast med en liten del av en oblig når det gjelder programmering i c++. Oppgaven går ut på at brukeren skal skrive inn tall til et klokkeslett. Når klokkeslettet består av f.eks 9 timer skal det automatisk legges til 09.XX.XX slik at det ikke er et tall. Og det er dette som bringer meg til mitt spm.

if (tid1.time <10)

{
cout <<"\nDen nye tiden er: " << "0" << tid1.time << ":"<< tid1.minutt << ":" << tid1.sekund << endl;
}

Lurer på om det finnes noen mer lettvin måte å gjøre dette på.. eller må jeg virkelig lage if for både minutter og sekunder i tilegg?

som sakt.. relativt ny innenfor programmering, som kanskje gjenspeiler seg i spm... hadde vært fint med tips.. ettersom jeg skal lære ut av dette istedet for å få koden levert ;)

 

Lenke til kommentar
Videoannonse
Annonse

Du kan jo for eksempel bruke std::stringstream(C++) eller sprintf© til å genere hele klokkeslettet uten noen ifs.

 

For eksempel:

#include <iostream>
#include <sstream>
#include <iomanip>

int a = 20;

std::stringstream stream;
stream << std::setw(2) 
       << std::setfill('0')
       << a << "bla" << 2;

std::cout << stream.str();

// Du kan også bruke manipulatorer direkte med std::cout.
std::cout << std::set2(2) << std::setfill('0') << a << "bla" << 2;

std::setw og std::setfill er manipulatorer som sier hvordan dataene som sendes inn skal formateres. setw brukes til å sette minimum bredde og setfill til å sette tegn som skal brukes som fyll. Det finnes mange andre manipulatorer.

 

Output med forskjellige verdier av a:

a=1     = "01bla2"
a=2     = "02bla2"
a=11    = "11bla2"
a=50    = "50bla2"

Du bør kanskje ha noen sjekker på at klokkeslettet som sendes inn er gyldig.

Type: "if (time.hours >= 0 && time.hours <= 24)

Endret av Glutar
Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...