miig Skrevet 24. februar 2006 Del Skrevet 24. februar 2006 Jeg er nybegynner innen c++. Jeg fant et eksempel i en bok, men når jeg skal kompliere det så kommer det opp en sånn rød greie over linje nummer to. Jeg anntar at det er noe galt med komandoen. Den er som følger: Main () { printf ("How much money did you make last year? "); scanf ("%f", &salary); taxowed = salary * .95; printf ("This is how much tax you owe = %8.2f", taxowed); } Jeg bruker Bloodshed Dev-C++..... Hva er galt og hvordan kan jeg rette den? Lenke til kommentar
GenericName Skrevet 24. februar 2006 Del Skrevet 24. februar 2006 (endret) ... Endret 12. januar 2011 av Token Lenke til kommentar
miig Skrevet 24. februar 2006 Forfatter Del Skrevet 24. februar 2006 Hmm, stor M i main(), også har du ikke definert variablene.salary, ganges det med et desimaltall, eller en integer? #include <iostream> int main() { int salary, taxowed; std::cout << "How much money did you make last year? "; std::cin >> salary; taxowed = salary * 95 // Vet ikke hva det skulle være std::cout << taxowed << std::endl; return 0; } 5657910[/snapback] Tusen takk! Lenke til kommentar
Peter Skrevet 24. februar 2006 Del Skrevet 24. februar 2006 Koden du skrev, miig, er C Koden prog master skrev er C++, men med mangel for alt som heter komma, så avrundingene er antakelig litt merkelige. I teorien skulle egentlig taxowed ha blitt opprettet i det den variabelen ble initialisert, altså double taxowed = salary * 0.95 (selv om 95% er mye skatt) men jeg synes prog masters kode er mer oversiktlig Bare nevner mulighetene... Lenke til kommentar
miig Skrevet 26. februar 2006 Forfatter Del Skrevet 26. februar 2006 Koden du skrev, miig, er CKoden prog master skrev er C++, men med mangel for alt som heter komma, så avrundingene er antakelig litt merkelige. I teorien skulle egentlig taxowed ha blitt opprettet i det den variabelen ble initialisert, altså double taxowed = salary * 0.95 (selv om 95% er mye skatt) men jeg synes prog masters kode er mer oversiktlig Bare nevner mulighetene... 5658805[/snapback] Takk skal du ha! Lenke til kommentar
Entmaster Skrevet 27. februar 2006 Del Skrevet 27. februar 2006 et spørsmål bare, er ny i c++, men lurer på hvorfor det er så mange som erklærer standar bilbioteket for hver cout og cin, hvorfor erklærer de ikke at de bruker biblioteket i begynnelsen i stede? bare en vanesak? Lenke til kommentar
Dead_Rabbit Skrevet 27. februar 2006 Del Skrevet 27. februar 2006 Med å "erklære" standarbibloteket, regner jeg med at du da mener å spesifisere hvilket namespace objektene, klassene, funksjonene, osv. ligger i. (?) (Altså ved å skrive std::cout istedenfor cout, o.l.) Dette er egentlig bare smak og behag i mindre programmer som dette, og er ikke så viktig å tenke på slikt med det første ihvertfall. Dersom programmene imidlertid begynner å bli litt større, er det lettere for at de forskjellige navnene "kræsjer" ved at flere objekter, klasser, funksjoner, e.l. har samme navn. Pga. disse "navne-kræsjene" introduserte C++ en ny ting kalt namespace. Disse gjør at man kan "skjule" de forskjellige navnene på klasser, objekter, osv., slik kompilatoren blir i stand til å kjenne igjen hvilke klasser, funksjoner, osv. vi ønsker. Dette gjør vi ved at vi spesifiserer hvilket namespace en klasse/objekt/osv. er definert i. Standardbibloteket til C++ ligger i namespace std, noe som gjør at vi må bruke std::cout når vi ønsker å referere til objektet cout. Men, det finnes snarveier for dette. Ved å skrive en såkalt using-deklarasjon, sier man til kompilatoren at man vil bruke alt eller deler av et namespace: using std::cout; //dette er en using-deklarasjon Gjør at vi kan skrive cout istedenfor std::cout (men vi siden det bare er std::cout vi sier at vi vil "åpne opp litt for", må vi fortsatt bruke std::-prefikset hvis vi f.eks. skal referere til std::cin.) using namespace std; //dette er også en using-deklarasjon Dette "åpner opp for" hele namespace std. Altså, vi kan bruke alle funksjoner, objekter, osv. fra namespace std, uten å måtte bruke std::-prefikset. Er litt usikker på hva du vet om namespaces , så jeg vet ikke om du visste dette fra før av eller ikke. Lenke til kommentar
Entmaster Skrevet 27. februar 2006 Del Skrevet 27. februar 2006 using namespace std; //dette er også en using-deklarasjon Dette "åpner opp for" hele namespace std. Altså, vi kan bruke alle funksjoner, objekter, osv. fra namespace std, uten å måtte bruke std::-prefikset. 5673682[/snapback] ja var dette jeg lurte på skjønner du, hvorfor du ikke brukte denne setningen istede, men jeg formulerte meg jo veldig dårlig, men så ny som jeg er i c++ så visste jeg ikke alt dette om namespace, jeg trodde det bare eksisterte i denne kodelinjen, men det tok jeg visst grundig feil men takker for all denne informasjonen! (ikke bli helt forferdet over mine manglende kunnskaper, har kjøpt meg en bok og skal gå inn for å iallefall å lære meg godt med basiskunskap ) Lenke til kommentar
Dead_Rabbit Skrevet 27. februar 2006 Del Skrevet 27. februar 2006 men så ny som jeg er i c++ så visste jeg ikke alt dette om namespace, jeg trodde det bare eksisterte i denne kodelinjen, men det tok jeg visst grundig feil wink.gif men takker for all denne informasjonen! Bare hyggelig. Er ikke så rart at man ikke helt forstår alt med en gang. Husker tilbake da jeg nettopp hadde begynt med C++, hehe. Var en del frustrerende og håpløse stunder der, ja. 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å