Gå til innhold

Hjelp til å komme i gang


Anbefalte innlegg

Heisann, jeg er ganske ny i C++ og jeg har hittil bare kommet meg gjennm boka c++ for dummies. Den bruker en dosbasert kompilator som forøvrig funker greit til mitt bruk, men når jeg skulle til å bruke <windows.h> fikk kompilatoren problemer (står ingenting om windows.h i boka, det leste jeg på forumet). Derfor lastet jeg ned ny kompilator fra Bloodshed.net : Dev-C++ 5.0 beta 8 (4.9.8.0)

Denne kompilatoren klarte ikke å lage en fil ut av dette, som funka med den gamle kompilatoren:

 

Kan noen hjelpe meg å komme i gang med Dev-C++ ??

 

//  Conversion - convert temperature from Celsius
//  degree units into Fahrenheit degree units:
//      Fahrenheit = Celsius  * (212 - 32)/100 + 32

#include <stdio.h>
#include <iostream.h>
int main(int nNumberofArgs, char* pszArgs[])                  
{
   // enter the temperature in Celsius
   int nCelsius;
   cout << "Enter the temperature in Celsius:";
   cin  >> nCelsius;

   // calculate conversion factor for Celsius
   // to Fahrenheit
   int nFactor;
   nFactor = 212 - 32;

   // use conversion factor to convert Celsius
   // into Fahrenheit values
   int nFahrenheit;
   nFahrenheit = nFactor * nCelsius/100 + 32;

   // output the results
   cout << "Fahrenheit value is:";
   cout << nFahrenheit;

   return 0;
}

Lenke til kommentar
Videoannonse
Annonse

Uff da. Den boka er ikke helt god. Får prøve å rette opp litt her..:

 

For det første er det vanlig høflighet, "by convention", å kalle argumentene til main() for argc og argv.

 

int main(int argc, char* argv[])

 

For det andre trenger du det strengt tatt ikke argumenter i det programmet i det hele tatt. int main() holder (i dette tilfellet).

 

For det tredje (a) er det nye regler for header-filer. Det betyr at for C++-headere (I Standard C++ Library) skal ikke headeren ha .h

Dette gir: #include <iostream>

 

For det tredje (b) er det flere nye regler for header-filer. Det betyr at for C-headere for C++ (I Standard C++ Library) skal ikke headeren ha .h, og den skal ha en c foran.

Dette gir: #include <cstdio>

 

For det tredje (c ) bruker du ikke <stdio.h> (eller <cstdio> som den som sagt heter i C++), og derfor kan du like gjerne ta den bort.

 

For det fjerde bruker du "Hungarian notation" (n foran variabel-navnet til tall, osv). Usj.

 

 

Feilen er sannsynligvis at Dev-C++ er oppmerksom på at headere har bytta navn.

Prøv dette:

 

//  Conversion - convert temperature from Celsius
//  degree units into Fahrenheit degree units:
//      Fahrenheit = Celsius  * (212 - 32)/100 + 32

// Nytt header-navn
#include <iostream>

// Dette vil du lære mer om senere. Foreløpig 
// er det nok å vite at du skal bruke det.
using namespace std;

int main(int argc, char* argv[])                  
{
  // enter the temperature in Celsius
  int nCelsius;
  cout << "Enter the temperature in Celsius:";
  cin  >> nCelsius;

  // calculate conversion factor for Celsius
  // to Fahrenheit
  int nFactor;
  nFactor = 212 - 32;

  // use conversion factor to convert Celsius
  // into Fahrenheit values
  int nFahrenheit;
  nFahrenheit = nFactor * nCelsius/100 + 32;

  // output the results
  cout << "Fahrenheit value is:";
  cout << nFahrenheit;

  return 0;
}

 

Håper dette hjelper litt :)

 

 

EDIT: Tenkte bare jeg skulle understreke at siden <windows.h> ikke er i Standard C++ Library, heter den fortsatt <windows.h>.

 

Siden den ikke er i Standard C++ Library er den heller ikke portable.

 

EDIT 2: ( c ) ble til ©. Fikset.

Endret av Myubi
Lenke til kommentar

Må bare få sagt at den boka der er utrolig dårlig.

Den er skrevet på en vannvittig tungvinn måte,

og ting er fryktelig vanskelige å få med seg.

Med Deitel&Deitel sin bok gikk det tre ganger så fort,

og har skjønt MYE mer, spesielt om pekere enn jeg gjorde med C++ for dummies.

C++ for dummies kan du like godt bare kaste.

Lenke til kommentar

Sorry, men koden fungerte ikke, denne gangen på en annen maskin og under xp (samme kompilator). Samme dumme feil oppstod. Jeg har ikke gjort noen innstillinger.

 

Kompilatorlogg: Kompilator: Default compiler

Kjører g++.exe...

g++.exe "E:\Kompilator\Ny.cpp" -o "E:\Kompilator\Ny.exe" -I"E:\Kompilator\include\c++" -I"E:\Kompilator\include\c++\mingw32" -I"E:\Kompilator\include\c++\backward" -I"E:\Kompilator\include" -L"E:\Kompilator\lib"

Kjøring avbrutt

 

Eneste jeg gjorde var å velge ny kildefil, lime inn koden, lagre med navnet Ny.cpp og trykke på kompile.

 

Har ikke snøring på hva som er feil, har prøvd mange koder og to operativsystemer 98 og XP. Har noen som bruker DEV-C++ opplevd det samme?

Lenke til kommentar

Skal ikke følgende kode vente på inndata før det avslutter? ved cin.get();

gjør ikke det i min dev-c++

#include <iostream>

using namespace std;

int main()
{
   int hexer;
   cout.flags(ios_base::hex);
   cin >> hexer;
   cout << hexer;
   char heis[128];
   cin.getline(heis, 128);
   cout << heis;
   cin.get();
   return 0;
}

Lenke til kommentar

Problemet er trolig at det "henger igjen informasjon i cin", for å si det sånn. Du kan lese mer om problemet, pluss få en løsning (jeg orker ikke skrive den inn) her: Cprogramming.com FAQ

 

(Det kan være at det ikke er det som er problemet. Vanligvis ville jeg sjekka for å få det bekrefta, forklart litt osv, men jeg er ikke helt i form akkurat nå. Sorry, mac.)

Lenke til kommentar

prøv å kompiler følgende :

#include <iostream>

using namespace std;

int main()
{
  int hexer;
  cout.flags(ios_base::hex);
  cin >> hexer;
  cout << hexer;
  char heis[128] = "lol";
  cin.getline(heis, 128);
  cout << heis;
  system("pause");
  cin >> hexer;
  return 0;
}

jeg får masse feil :scared: skjønner ingen ting

 

skriver inn: 100,i,100

100
64Trykk en tast for å fortsette...
100

 

dette skulle ikke skje??

Lenke til kommentar

Kallet til getline vil ikke funke som forventet fordi at et linjeskift vil ligge i bufferen til cin, og cin.getline vil bryte straks det ser dette tegnet (altså med en gang). Det du kan gjøre er å kalle cin.ignore() etter å ha lest inn i hexer, dermed kaster du det neste tegnet (linjeskift) i strømmen.

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