Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  4 703
Det er ikke mer enn et par måneder siden jeg bestemte meg for å begynne med programmering, men jeg har skjønt det sånn at man kan stille "amatørspørsmål" så lenge man har gjort en innsats for å finne ut av problemet på egen hånd først.
Jeg har leid en bok om C++ på biblioteket, og i den fikk jeg en oppgave om et program som regner ut arealet av en trekant. Jeg kopierte programmet ordrett inn i Microsoft Visual Studio (heretter MVS), men fikk feilmeldingen som følger: "error C1083: Cannot open include file: 'iostream.h': No such file or directory" (jf. vedlagt bilde, hvis det er leselig)

Spørsmålet mitt kan stilles allerede nå. Hvordan fikser jeg det problemet? Jeg går ut ifra at jeg må finne headerfila og legge den inn i mappa "header files" i solution exploreren, men det skulle vise seg å være vanskeligere enn først antatt. Hvis du vil vite hva jeg har prøvd selv, eller bare vil forsikre deg om at jeg har prøvd selv før du svarer, er du velkommen til å lese videre om mine strabaser under dette.


Da dette problemet først oppstod tenkte jeg at det kunne skyldes at MVS lette etter headerfila et annet sted enn jeg hadde installert det, fordi på grunn av plassmangel hadde jeg installert programmet delvis på ekstern harddisk, men jeg slo det fra meg fordi jeg trodde headerfiler var en implementert del av programmet hvis du brukte riktig "modus" i MVS. Derfor begynte jeg å lete etter en løsning på det, og fant følgende:
http://msdn.microsoft.com/en-us/library/fhk5x2d3.aspx

Jeg fulgte den oppskriften, og tilsynelatende hjalp det, for jeg fikk færre feilmeldinger enn før, men C1083 ble stående.


Da kom jeg på min teori om programmets mulige leting etter headerfila. Jeg søkte, og fant dette:
http://msdn.microsoft.com/en-us/library/et4zwx34.aspx

Nærmere bestemt;
A new project uses default search paths. You may have to modify the path to add a directory for your project.
Vis hele sitatet...
Jeg fikk mine mistanker bekreftet, så jeg avinstallerte hele MVS og installerte alt på C-stasjonen. Det hjalp heller ikke, så det jeg prøvde da var å åpne en template-fil og kjøre den, og det funket. Det var da jeg la merke til at på solution exploreren i mappa "header files" lå fila 'stdafx.h' som programmet hadde som en preprosessorkommando. Derfor fulgte selvsagt et vilt søk etter headerfila iostream.h, men alt jeg fant var to med sammen navn hvorav den ene hadde filtypen "fil", og den andre hadde filtypen "C++ source file". Begge lå under C:\Programfiler\Microsoft Visual Studio 10.0\VC\crt\src. Jeg prøvde å legge begge inn både i header files-mappa og i prosjektmappa der 'stdafx.h' lå, men uten hell.

Som dere sikkert kan fortså dere som har hatt tålmodighet til å lese alt dette, er jeg ganske lei av hele greia, og henvender meg derfor til dere mer erfarne. Jeg håper dere ser i nåde til meg og hjelper meg. På forhånd takk for all hjelp.
Har du forsøkt i importere <iostream> i stedet for den utgåtte <iostream.h> ?

Header-filer som tilhører standardbiblioteket ligger vel vanligvis under external dependencies, og legges til etterhvert som de importeres. Du trenger bare legge til paths til andre biblioteker om du forsøker å linke mot et tredjeparts-bibliotek/rammeverk.
Sist endret av Dyret; 6. januar 2012 kl. 14:24.
Prøv denne i stedet:

Kode

#include <iostream>

Edit: Ooh, too late!
Sist endret av s1gh; 6. januar 2012 kl. 14:23.
Litt merkelig å legge ved et bilde av tekst, men jeg ser flere problemer:
*Som sagt så er iostream.h utgått
*double skrives med liten d
*Du skriver "hoyde" med liten 'h' noen steder, og stor 'h' andre steder
*cin, cout og endl er ikke i scope, du må bruke std:: (evt. using namespace std)
*main skal retunere int ifølge standarden
*void som funksjonsargument er C-konvensjon, man pleier ikke bruke det i C++
Sist endret av TanteSpiker; 6. januar 2012 kl. 15:27.
Tok meg bryet med å rette programmet ditt:

Kode

#include <iostream>

using namespace std;

int main(void)
{
	double grunnlinje;
	double hoyde;
	
	cout << "Skriv grunnlinje og hoyde: ";
	cin >> grunnlinje >> hoyde;
	
	double areal;
	areal = grunnlinje * hoyde * 0.5;
	cout << "Arealet blir " << areal << endl;

}//end main