Gå til innhold

Nybegynner problemer med c++:)


Anbefalte innlegg

Hei!

Jeg starter med c++ i dag faktisk, og jeg holder bare på med å lære meg litt av tingene nå. Jeg prøvde å skrive en kode utifra et lite annet script jeg fant på internett. Det store den gjør er at du skriver inn navnet ditt også sier den "Hei navnet ditt" osv.. Men hvis jeg skriver bokstaver og trykker på enter så avslutter programmet bare...:S Funker fint hvis jeg skriver tall isteden for bokstaver..

 

 

Her er koden jeg har:

#include <iostream>

int main()
{
int short unsigned dittnavn;
std::cout << "Hei! Hva er ditt navn?\n";
std::cin >> dittnavn; 
std::cout << "Hei " << dittnavn <<"!\n";
std::cin >> dittnavn;
return 0;
}

 

 

Håper noen gidder å hjelpe meg :D Takk!

Lenke til kommentar
Videoannonse
Annonse
Jeg personlig bruker system(), jeg vet at jeg ikke burde bruke den.

Men det blir lettest for meg, slik.

 

Hvorfor kaller mange kode for script?

5312492[/snapback]

Funksjonen system ligg så vidt eg veit i stdlib. Viss du skal bruke den må du inkludere cstdlib, men av ein eller annan grunn må du visst ikkje det i din kompilator... :p

 

Eg er av dei som ofte klarer å skrive script med uhell. Er for vand med å scripte PHP... :p

Lenke til kommentar

Olav: Vet ikke om dette blir litt avansert for en _helt_ nybegynner, men det er ihvertfall noe slikt jeg ville gjort:

#include <iostream>
#include <string>
#include <ctime>

using namespace std;

void sleep(int ms)
{
       clock_t cc = clock();
       while(cc*1000/(CLOCKS_PER_SEC)+ms != clock()*1000/(CLOCKS_PER_SEC))
              ;
}

void print(const string& ss)
{
       string::const_iterator it = ss.begin(); 
       while(it != ss.end()) {
               cout << *it++ << flush;
               sleep(110);
       }
}

int main()
{
       cout << "Enter name: ";
       string name;
       getline(cin, name);

       print("Hello, " + name);

       cout << endl;
       return 0;
}

Lenke til kommentar

I stedet for å bruke system("PAUSE") (som jeg mener er ganske fy-fy) kan man bruke getch() eller noe lignende. strengt tatt kan man vel ha en cin.get() eller noe liggende der også?

 

Sånn hvis man ikke skal gjøre det så avansert som zirener foreslår, for en nybegynner.

Lenke til kommentar
Olav: Vet ikke om dette blir litt avansert for en _helt_ nybegynner, men det er ihvertfall noe slikt jeg ville gjort:

void sleep(int ms)
{
       clock_t cc = clock();
       while(cc*1000/(CLOCKS_PER_SEC)+ms != clock()*1000/(CLOCKS_PER_SEC))
             ;
}

5313816[/snapback]

Denne her var ganske interessant. Er ikke 1000/CLOCKS_PER_SEC egentlig bare en konstant? sånn at du egentlig bare kunne ha gjort while(cc+ms != clock()) ?

Sånn som jeg leser det ihvertfall, så regnes jo cc*1000/CLOCKS_PER_SEC ut først, før +ms legges til. Hadde det vært cc*1000/(CLOCKS_PER_SEC+ms), så hadde det vært noe annet?

 

Eller er jeg ute og sykler på jorder nå?

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...