Gå til innhold

Nybegynner problemer med c++:)


Anbefalte innlegg

Skrevet

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!

Videoannonse
Annonse
Skrevet

Du bruker en int til å lagre et navn i. Du må bruke enten en char* (char array) eller en string.

 

Prøv følgende:

 

#include <iostream>

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

Skrevet

Takk!:D Funket nå;)

 

Men en ting til, er det en funksjon jeg kan bruke slik det ser ut som om pcen skriver? Alltså slik at teksten ikke popper fram i consolen, men slik at det ser ut som om den skriver?

Skrevet
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

Skrevet

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;
}

Skrevet

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.

Skrevet
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å?

Skrevet (endret)

cc*1000 er vel det som regnes ut først. Så deles resultatet på 1000 så vi får millisekunder. cc+ms != clock() funker fett, men da får vi det ikke mer nøyaktig enn sekunder. Prøvde først med ms/(CLOCKS_PER_SEC*1000), men det så ikke ut til å funke... :)

 

Edit: Sjekk ut man-sider, og/eller http://www.cppreference.com ;)

Endret av zirener

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