Bone Skrevet 16. november 2003 Del Skrevet 16. november 2003 Heisann! Først, før noen klager på 'feil bruk av emnefelt', vil jeg bare si at jeg er en nybegynner; så av den grunn kommer det nok til å bli flere spørsmål fra meg etterhvert, så i stedet for å ha x -antall (hundre!? hehe..) emner, så laget jeg en liten "felles" en.. ..flere nybegynnere kan selvsagt også poste her! Uansett.. Jeg har drevet litt med C++ før, men det begynner å bli en stund siden, og nå har jeg tatt fatt igjen.. Og med meg på løpet har jeg en bok å lese i som jeg er meget fornøyd med, .. anyway; I boka står det at cout << setw(6) << setprecision(2) << 134.568767; skal gi følgende output; 134.57 Men, hos meg så får jeg 1.3e+02 Warum? Til info, så har jeg også husket #include <iomanip.h> Det står også at hvis jeg bare skrive cout << 134.568767; så skal jeg få hele tallet.. Mens jeg ender opp med 134.569 Again; Why? Takk for all hjelp! mvh Bone ps; kjører Borland C++ 5.01, mens boka er 4.0 -versjon.. uansett vil jeg gjerne vite hvordan jeg får desimaler, istedet for det derre "opphøyd i" tullet.. Lenke til kommentar
daysleper Skrevet 17. november 2003 Del Skrevet 17. november 2003 (endret) Sikkert ingen dårlig idé, men så var det det om faktisk noen av nybegynnerene greide å poste under dette emnet da. cout << fixed << setprecision(2) << 134.568767; Ville gitt 134.57. Den vil runde opp som du ser. Det "opphøyd i" tullet kalles vitenskapelig notasjon (scientific notation) hvis jeg ikke skriver/sier feil. Jeg har en tendens til å oversette ting "direkte" fra engelsk til norsk i mangel av eller kunnskap om gode norske ord. Som standard velger den enten fixed eller scientific notasjon automatisk etter som hva den anser vil spare plass; altså etter som hvor "stort" tallet er. Det er mulig boken din er litt gammel. Man bruker #include<iostream> og #include<iomanip> nå. Ikke de tilsvarende med .h bak. Endret 17. november 2003 av daysleper Lenke til kommentar
daysleper Skrevet 17. november 2003 Del Skrevet 17. november 2003 (endret) http://www.cppreference.com/cppio_flags.html Der har du en liten oversikt. fixed Turns on the fixed flag (ddd.ddd) "setprecision( int p ) Sets the number of digits of precision" (ddd.dddEdd) Endret 17. november 2003 av daysleper Lenke til kommentar
Bone Skrevet 17. november 2003 Forfatter Del Skrevet 17. november 2003 Takk for svar! Det var den derre setiosflags(ios::fixed) som manglet.. Rart/dumt han glemte den i boka! :/ mvh Bone Lenke til kommentar
moesen Skrevet 28. november 2003 Del Skrevet 28. november 2003 (endret) ..flere nybegynnere kan selvsagt også poste her!Benytter meg av dette nå jeg Lurte på hva "!=" vil si... F.eks [...] while(c !=cols) { cout << greeting; c += greeting.size(); } [...] Er det slik at det IKKE (usann/false) stemmer? Hva vil egentlig "size()" si, er det slik at det er f.eks her antall bokstaver i greeting? Takk for svar Endret 28. november 2003 av moesen Lenke til kommentar
daysleper Skrevet 28. november 2003 Del Skrevet 28. november 2003 Prøv: if(0 != 0) cout << "0 != 0" << endl; if(0 != 1) cout << "0 != 1" << endl; if(1 != 0) cout << "1 != 0" << endl; if(1 != 1) cout << "1 != 1" << endl; Hva er greeting? Hvilken type/klasse er det? Hvis det er en string, som i std::string, kan du titte her: http://www.cppreference.com/cppstring_details.html#size Lenke til kommentar
moesen Skrevet 28. november 2003 Del Skrevet 28. november 2003 greeting er en string ja... The size() function returns the number of characters currently in the string. Takk Du kan få se hele programmet... Jeg holder på med boka Accelerated C++, kommet til kapittel 2. #include <iostream> #include <string> //Her kunne jeg bare ha brukt "using namespace std;" men jeg tar det rett fra boka jeg.. ;) using std::cin; using std::endl; using std::cout; using std::string; int main() { cout << "Skriv inn navnet ditt: "; string name; cin >> name; const string greeting = "Heisann, " + name + "!"; const int pad = 1; const int rows = pad * 2 + 3; const string::size_type cols = greeting.size() + pad * 2 + 2; cout << endl; for (int r = 0; r !=rows; ++r) { string::size_type c = 0; while (c != cols) { if (r == pad + 1 && c == pad + 1) { cout << greeting; c += greeting.size(); }else{ if (r == 0 || r == rows - 1 || c == 0 || c == cols - 1) cout << "*"; else cout << " "; ++c; } } cout << endl; } return 0; } Jeg må innrømme at jeg er litt usikker på om jeg skjønner absolutt alt med programmet, hadde ihvertfall aldri kommet på dette selv.. Lenke til kommentar
daysleper Skrevet 29. november 2003 Del Skrevet 29. november 2003 Det løsner når du kommer videre ut i boka. Få med deg deg det boken tar opp nå og ignorer det du ikke forstår ennå. Det kommer siden som sagt. Fra en tidligere post: "Foresten så er den første feilen nybegynnere gjør akkurat det å "bekymre seg om det de ikke forstår". Så gir de opp og glemmer det de faktisk kanskje har forstått og fått med seg. Konsepter før syntax er noe som kan gjentaes i det uendelige har jeg inntrykk av." Hvis du ikke har testet er det altid lurt å prøve noen oppgaver. Gudd løkk! Lenke til kommentar
moesen Skrevet 29. november 2003 Del Skrevet 29. november 2003 Det løsner når du kommer videre ut i boka. Få med deg deg det boken tar opp nå og ignorer det du ikke forstår ennå. Det kommer siden som sagt. Fra en tidligere post: "Foresten så er den første feilen nybegynnere gjør akkurat det å "bekymre seg om det de ikke forstår". Så gir de opp og glemmer det de faktisk kanskje har forstått og fått med seg. Konsepter før syntax er noe som kan gjentaes i det uendelige har jeg inntrykk av." Hvis du ikke har testet er det altid lurt å prøve noen oppgaver. Gudd løkk! Takk for hjelpen ihvertfall. Skal gå vidre i boka, boka er foresten veldig bra/god i motsetning til Dummies boka jeg brukte før. Kommer veldig fort i gang og forklarer setning for setning. Super bok Lenke til kommentar
Stroyer Skrevet 1. desember 2003 Del Skrevet 1. desember 2003 OK, som dere sikkert allerede vet er jeg temmelig ny i Linux. Særlig når det gjelder det med konsoll og sånt. Så har jeg et spørsmål angående min fremgangsmåte, for det er noe jeg rett og slett ikke får til! Sitter og knoter i Kate på et lite skriv-ut-en-melding-program. Det ser slik ut: #include <iostream> int main () { cout << "Hei verden!/n"; return 0; } ...og ligger her: file:/home/arne_daniel/Documents/programmering/cpp/tester/mldboks.c Når jeg skal kompilere det, prøver jeg å gjøre dette i GCC. Da gjør jeg disse kommanoene: cd /home/arne_daniel/Documents/programmering/cpp/tester/ gcc --help gcc -o mldboks mldboks.c Her starter problemet. Jeg får nemlig opp en melding om at fila / mappa ikke eksisterer. Hva har jeg gjort feil? Lenke til kommentar
moesen Skrevet 1. desember 2003 Del Skrevet 1. desember 2003 Stroyer... For og compilere C++ kode så må du bruke kommandoen g++ programnavn.cpp -o programnavn Det er ved C kompilering man bruker gcc vel? Du skrev følgende kode... #include <iostream> int main () { cout << "Hei verden!/n"; return 0; } Ser du prøver og hoppe en linje med "/n". Tor det er "\n" du hopper en linje med. Og jeg tror det skal være int main();. Vet ikke om det har noe og si, jeg bare sier/skriver det uansett. Lenke til kommentar
daysleper Skrevet 1. desember 2003 Del Skrevet 1. desember 2003 ..og du må huske å ta med namespacet, slik: #include<iostream> int main() { std::cout << "Hei verden!\n"; return 0; } ..eller slik: #include<iostream> using namespace std; int main() { cout << "Hei verden!\n"; return 0; } Lenke til kommentar
daysleper Skrevet 1. desember 2003 Del Skrevet 1. desember 2003 Du kan jo skrive ls først, så ser du om filen ligger der. Som moesen nevner så er gcc for C og g++ er for C++. Lenke til kommentar
Stroyer Skrevet 2. desember 2003 Del Skrevet 2. desember 2003 Takk! Hjalp meg i mål med mitt lille Hei-Verden-prosjekt Lenke til kommentar
moesen Skrevet 4. desember 2003 Del Skrevet 4. desember 2003 Jeg sliter litt med noe småtterier.. To ting jeg lurer på. Ett kapittel i boka heter Counting, som tar for seg hvorfor det er bedre og telle fra 0 i stedet for 1. Mye om asymetrik eller noe, skjønner ikke stort. Noen som har en enkel måte og forklare dette på norsk? Den andre tingen: Hva betyr f.eks ++k? Jeg mener at det betyr økning med en og en.. F.eks i koden nedenfor; k øker med to (k+1+1). Stemmer det eller er jeg helt på jordet? #include <iostream> using namespace std; int main() { int k = 0; while(k !=10) { cout << "*"; ++k; } cout << endl; return 0; } Lenke til kommentar
daysleper Skrevet 5. desember 2003 Del Skrevet 5. desember 2003 Både ++k og k++ øker med én i de fleste tilfeller. Du kan programmere om dette hvis du vil, slik at operatorene gjør andre ting .. dette kalles "operator overloading", men dette kommer kanskje siden. Hvis du kjører koden du har pastet burde du se med en gang hva som skjer(?). Forskjellen mellom dem (++k og k++) har noe med timing og rekkefølge å gjøre, kjør et experimenth: #include <iostream> using namespace std; int main() { int a = 0; int b = 0; cout << "a: " << endl; cout << ++a << endl; cout << a << endl; cout << endl; cout << "b: " << endl; cout << b++ << endl; cout << b << endl; } Under kjøring: a: 1 1 b: 0 1 Comprenez-vous? Det første spørsmålet ditt rekker jeg ikke å forklare; men jeg kan si meg enig at det er bedre å starte fra 0. Lenke til kommentar
moesen Skrevet 5. desember 2003 Del Skrevet 5. desember 2003 Comprenez-vous? oui je pense que je comprends, mais pas complètement sûr.. Det første spørsmålet ditt rekker jeg ikke å forklare; men jeg kan si meg enig at det er bedre å starte fra 0. Er det veldig viktig at jeg får det med meg da? Takk foresten! Lenke til kommentar
daysleper Skrevet 5. desember 2003 Del Skrevet 5. desember 2003 int arrayAvInter[5]; bare husk at dette går fra 0 til 4 og ikke fra: 0 til 5 eller 1 til 5 eller.no.sånnt altså du kan si: arrayAvInter[0] = 123; arrayAvInter[1] = 123; arrayAvInter[2] = 123; arrayAvInter[3] = 123; arrayAvInter[4] = 123; men arrayAvInter[5] = 123; .."går ikke". Lenke til kommentar
Vaughn Skrevet 12. desember 2003 Del Skrevet 12. desember 2003 int arrayAvInter[5]; bare husk at dette går fra 0 til 4 og ikke fra: 0 til 5 eller 1 til 5 eller.no.sånnt altså du kan si: arrayAvInter[0] = 123; arrayAvInter[1] = 123; arrayAvInter[2] = 123; arrayAvInter[3] = 123; arrayAvInter[4] = 123; men arrayAvInter[5] = 123; .."går ikke". Hvor "Går ikke" betyr at det antakelig går, men du skriver over andre biter av minnnet enn det du ønsker. Noen ganger virker det likevel. Mao. ganske fryktelig å finne ut av, av og til! Lenke til kommentar
moesen Skrevet 17. desember 2003 Del Skrevet 17. desember 2003 Jeg bare fortsetter og spør jeg... if (cin >> x) {/* ... */} Er det samme som: cin >> x; if (cin) {/* ... */} Bare svar ja eller nei på dette: Er det slik at "(cin >> x)" sier at hvis jeg i det hele tatt skriver noe, så kommer jeg inn i den "if-" loopen? Og hva er bool? Og hva gjør vector? Hva er mer praktisk med en vector? Hvis noen er så greie og forklarer det er jeg kjempetakknemlig. God Jul foresten 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å