code uit "aan de slag met c++" klopt niet??

Status
Niet open voor verdere reacties.

yvo_bo

Nieuwe gebruiker
Lid geworden
3 okt 2006
Berichten
2
Hallo, kan iemand me helpen ?
Het onderstaande stuk code genereert een probleem terwijl deze letterlijk uit het boek is overgenomen.
Kan iemand me helpen bij voorbaat dank.

#include <iostream>
#include <fstream>
using namespace std;
string s;


int main()
{
ifstream invoer ( "bestand1.txt" );
string s;
char c;
int i;
double d;

getline( invoer , s);
invoer >> c;
invoer >> i;
invoer >> d;

cout << s << endl
<< c << endl
<< i << endl
<< d << endl;
}
invoer.close();
}

wanneer het gecompileerd wordt krijg ik het volgende:

C3861: 'getline': identifier not found
error C2679: binary '<<' : no operator found which takes a right-hand operand of type 'std::string' (or there is no acceptable conversion)

etc. ( en nog een hele reeks errors eronder maar die zijn denk ik gerelateerd aan het bovenstaande ).
 
Om te beginnen moet je om het string type te gebruiken de headerfile string.h includen

voeg deze regel toe:
#include <cstring>

verder moet de functie "getline" waarschijnlijk vervangen worden voor "cin.getline".
Als laatste heb je boven invoer.close(); een '}' te veel geschreven.

dit zou voor zover ik kan zien alle problemen moeten oplossen

de verbeterde code ziet er zo uit:

#include <iostream>
#include <fstream>
#include <cstring>

using namespace std;
string s;


int main()
{
ifstream invoer ( "bestand1.txt" );
string s;
char c;
int i;
double d;

cin.getline( invoer , s);
invoer >> c;
invoer >> i;
invoer >> d;

cout << s << endl
<< c << endl
<< i << endl
<< d << endl;

invoer.close();
}
 
Beetje rare bedoeling die code.

Code:
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
// hier stond string s gedeclareerd, maar dat is hier niet nodig. Gewoon in int main()
// is voldoende.

int main()
{
	ifstream invoer;
	invoer.open("d:\\aap.txt");
	string s;
	char c;
	double d;
	int i;

	invoer >> s;
	invoer >> c;
	invoer >> d;
	invoer >> i;

	invoer.close();

	cout << s << "\n" << endl;
	cout << c << "\n" << endl;
	cout << d << "\n" << endl;
	cout << i << "\n" << endl;
	system("pause");
	return 0;
}
 
bedankt

hey bedankt voor jullie replies.

De tweede was de uitkomst de eerste gaf nog errors.

thanks allebei in elk geval.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan