Archief - [PROG]C++ Eerste probeersel

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Jeroen_HD

Legacy Member
Hallo,

Ik ben sinds kort begonnen met het leren van C++
Ik heb me hiervoor het boek: "Aan de slag met C++" gekocht.
Nu ik heb zelf iets proberen te maken maar mijn programma Dev-C++ (www.bloodshed.net) geeft een foutmelding. Maar ik zie de fout niet meteen staan. Kunnen jullie mij mss helpen?

// Eerste programma; Jeroen Weymiens

#include <ionstream>
using namespace std;

int main()
{
string getal1, getal2;
int nummer1, nummer2;

cout << "Typ hier het eerste getal in" << endl;
getline( cin, getal1 );
cin.get();

cout << "Typ hier het tweede getal in" << endl;
getline( cin, getal2);
cin.get();
cout << "De som van deze twee getallen is: " << endl << endl;
cout << ( getal1 + getal2 ) << endl;

cout << " Druk op Enter om het programma af te sluiten";
cin.get();
return 0;
}


de foutmelding is dit:
http://img265.imageshack.us/img265/6743/cprobej0.jpg


Mvg,
Jeroen

MacK

Legacy Member
#include <iostream> ipv #include <ioNstream>

volgens mij (beginnend c++ programmeur) moet er trouwens geen cin.get(); na die getline(cin, getal2); alsook bij die andere getline().

Immers, leest getline niet het endline teken uit de invoerstroom weg?

Jeroen_HD

Legacy Member
idd, had de fout net gevonden. En heb de cin.het(); weggedaan, die zijn idd niet nodig aangezien die al in de getline zitten.
Maar het nu nog een probleem. Als ik bv. de getallen 2 en 8 ingeef zegt hij op het einde 28 ipv 10. Hoe laat ik dat werken?

Daedie

Legacy Member
kzou persoonlijk cin >> getalx; gebruik ipv getline.

dus:

cout << "Typ hier het eerste getal in" << endl;
cin >> getal1;

....

Daedie

Legacy Member
ich15 zei:
idd, had de fout net gevonden. En heb de cin.het(); weggedaan, die zijn idd niet nodig aangezien die al in de getline zitten.
Maar het nu nog een probleem. Als ik bv. de getallen 2 en 8 ingeef zegt hij op het einde 28 ipv 10. Hoe laat ik dat werken?

omdat uw getallen strings zijn. de + operator zal de strings dan concateneren ipv de getallen optellen.

om met getallen te werken moet ge int gebruiken (of long, double, float, ...).

dus:
int getal1, getal2;

int staat voor integer = geheel getal.

EDIT: en ge hebt daar nummer1 en nummer2 gedeclareerd maar ge gebruikt die niet. das niet proper, zoiets moet ge vermijden.

MacK

Legacy Member
Je bent strings aan het optellen, geen getallen.
"ik " + "ben" = "ik ben" net zoals "2" (als string) + "8" (als string) = "28" als string.

Je moet getallen inlezen, die kan je wel optellen:

int getal; //merk op : gedeclareerd als int
cin >> getal;
cin.get() //het endline teken werd nu NIET weggelezen uit de invoerstroom


*edit* zoals HC_Daedalus dus zei

ArnoDF

Legacy Member
m.a.w.

Code:
#include <iostream>
using namespace std;

int getal1,getal2;

int main() {
 cout<< "getal1: ";
 cin>> getal1;
 cout<< "getal2: ";
 cin>> getal2;
 cout<< "uitkomst= " << getal1+getal2 << endl;
 return 0;
}

Jeroen_HD

Legacy Member
Ik heb het in orde gekregen.
Bedankt voor de snelle respons.
Tis zo dat ik bijleer hé ^^

killgore

Legacy Member
ich15 zei:
Ik heb het in orde gekregen.
Bedankt voor de snelle respons.
Tis zo dat ik bijleer hé ^^
eerder door nog wat meer zelf te prutsen ipv met zoiets af te komen.
ArnoDF zei:
m.a.w.

Code:
#include <iostream>
using namespace std;

int getal1,getal2;

int main() {
 cout<< "getal1: ";
 cin>> getal1;
 cout<< "getal2: ";
 cin>> getal2;
 cout<< "uitkomst= " << getal1+getal2 << endl;
 return 0;
}

Why the hell zoude uw ints nu in godsnaam global gaan declareren? Leer die jongen anders van in het begin slechte code.

jodeman

Legacy Member
Ik zie de fout, bovenaan staat Dev-C++;
bovenaan moet normaal staan "Visual Studio - Express Edition" :p

Jeroen_HD

Legacy Member
voila, ben het aan het downloaden.
Ik zit op smallband dus het zal wel eventjes duren :p


Edit: Het is toch Visual C++ 2005 express edition dat ik moet hebben hé?

killgore

Legacy Member
yup.

En dev-c++ is ook niet slecht hoor, als je voor mingw wilt ontwikkelen, het is gewoon niet meer zo up-to-date.

BartDP

Legacy Member
ich15 zei:
voila, ben het aan het downloaden.
Ik zit op smallband dus het zal wel eventjes duren :p


Edit: Het is toch Visual C++ 2005 express edition dat ik moet hebben hé?

wss wel als je c++ wilt doen, je kan ook de manier van onze hogeschool doen: neem source edit of notepad++ (of tis eender wat) om code te schrijven code en compile en run ze met cygwin

Jeroen_HD

Legacy Member
Ik wil C++ leren om later goed mee te kunnen in de hogeschool. Ik wil namelijk Digital arts and entertainment volgen in Kortijk. IK ben ook al vollop met 3ds max 9 bezig.

Tyfius

Legacy Member
Het voordeel van MingGW is dat die de C/C++ standaard implementeert, iets wat Visual Studio niet doet. MS heeft zijn eigen implementatie die grotendeels wel aanleunt bij de standaard, maar her en der toch niet helemaal hetzelfde is.
Toch zou ik persoonlijk iemand die begint met C++ Visual Studio aanraden, fantastische integrated debugger.

Als je C++ wil leren raad ik je wel aan een goed boek te kopen. C++ Black Book en de C++ Primer zijn in mijn ogen sterke aanraders, al behandelen ze de meest geavanceerde en meest gebruikte onderdelen niet altijd in-depth.
Over DAE zijn al genoeg discussies geweest. Ik hoop voor jou dat je er echt tijd wil insteken om veel na de lessen te doen en zelf bij te leren en niet verwacht dat je na je DAE opleiding meteen je droomjob te pakken hebt.

killgore

Legacy Member
Tyfius zei:
Het voordeel van MingGW is dat die de C/C++ standaard implementeert, iets wat Visual Studio niet doet. MS heeft zijn eigen implementatie die grotendeels wel aanleunt bij de standaard, maar her en der toch niet helemaal hetzelfde is.
Toch zou ik persoonlijk iemand die begint met C++ Visual Studio aanraden, fantastische integrated debugger.

Als je C++ wil leren raad ik je wel aan een goed boek te kopen. C++ Black Book en de C++ Primer zijn in mijn ogen sterke aanraders, al behandelen ze de meest geavanceerde en meest gebruikte onderdelen niet altijd in-depth.
Over DAE zijn al genoeg discussies geweest. Ik hoop voor jou dat je er echt tijd wil insteken om veel na de lessen te doen en zelf bij te leren en niet verwacht dat je na je DAE opleiding meteen je droomjob te pakken hebt.

sinds de 2005 versies (de gratis dus) leunt de ms implementatie van c++ code wel zéér dicht aan bij de ansi/iso standaard hoor. Vroeger waren er vreselijk irritante zaken van tijd (ik denk nog maar aan levensduur van objecten), maar die tijd is gelukkig wat voorbij :).

En mingw volgt ook niet altijd standaard, ik ben daar ook al zaken tegengekomen die in principe zouden moeten werken, maar waar die compiler op vastliep.

KeaTs

Legacy Member
Als je genoeg geld hebt om 3D Studio Max 9 te kopen, zou ik ook de professionele Visual Studio 2005 kopen ipv de Express editie hoor, die is nog een eindje beter.

[ any naivity in this post is intentionally humorous ]

jodeman

Legacy Member
het is gewoon de debugger dat de magic doet vind ik :).

echt, de debugger van Visual Studio in Eclipse en ge hebt de perfecte ontwikkelomgeving :).
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan