aan de slag met visual studio 2008

  • Onderwerp starter Onderwerp starter sorn
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

sorn

Gebruiker
Lid geworden
17 aug 2008
Berichten
9
Ik ben vandaag begonnen met het leren van c++ heb verder weinig programmeer ervaring enkelt een beetje html/css/php gedaan maar nu werk ik uit een wat ouder boek wat ik al jaren had liggen waar de copiler niet meer bij zit dus heb ik ms vs 2008 gedownload nu wou ik dus een beetrje oefenen met dat wat ik gelezen had maar als ik bijv: helloworld.cpp wil compilen dan gaat het niet helemaal goed wat denk ik komt omdat in het boek waar uit werk niet met projecten gewerkt wordt zoals dat in visual studio het geval is maar dit is in ieder geval de melding die ik krijg ;

1>------ Build started: Project: 40lessen, Configuration: Debug Win32 ------
1>Compiling...
1>adressbook.cpp
1>c:\documents and settings\chris van den berg\my documents\visual studio 2008\projects\40lessen\40lessen\adressbook.cpp(3) : fatal error C1083: Cannot open include file: 'iostream.h': No such file or directory
1>Build log was saved at "file://c:\Documents and Settings\chris van den berg\My Documents\Visual Studio 2008\Projects\40lessen\40lessen\Debug\BuildLog.htm"
1>40lessen - 1 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========


//Adressbook

#include <iostream.h>
using namespace std;


char f_name;
char emails;

void main(void)
{
cout.post << "Please fill in your full name." << endl;
cin.get >> f_name;
cout.post << "Please fill in your email adress." << endl;
cin.get >> emails;

}
 
je moet .h weghalen achter iostream en een methode wordt altijd gevolgd door een lijst van mee te sturen argumenten tussen ( ) dus dat wordt cout.post(), cin.get() etc etc

p.s. een char heeft plek voor 1 karakter dus dat wil je mischien ook wel aanpassen als ze hun naam in moeten vullen
 
ik maak hier een fout maar ken het niet ontdekken wat het nou is

//Adressbook

#include <iostream>
using namespace std;




// contact sjabloon
struct contact {
char first_name[30];
char last_name[30];
char emails[50];
char cellphone[10];
};



// laat contact gegevens zien
void show_contact(contact contact_1)
{
cout <<"First name:" << contact_1.first_name << endl;
cout <<"Last name:" << contact_1.last_name << endl;
cout <<"email adress:" << contact_1.emails << endl;
cout <<"cellphone number:" << contact_1.cellphone << endl;


}

void main(void)
{ contact contact_1;
// vul de gegevens in
cout << "Please fill in your first name." << endl;
cin >> contact_1->first_name;
cout << "Please fill in your last name." << endl;
cin >> contact_1->last_name;
cout << "Please fill in your email adress." << endl;
cin >> contact_1->emails;
cout << "Please fill in your cellphone number." << endl;
cin >> contact_1->cellphone;

show_contact(contact_1);


}
 
contact_1 is een contact object. Geen pointer naar een contact object.

Dus i.p.v.:
Code:
cout << "Please fill in your first name." << endl;
cin >> contact_1->first_name;
cout << "Please fill in your last name." << endl;
cin >> contact_1->last_name;
cout << "Please fill in your email adress." << endl;
cin >> contact_1->emails;
cout << "Please fill in your cellphone number." << endl;
cin >> contact_1->cellphone;

moet het
Code:
cout << "Please fill in your first name." << endl;
cin >> contact_1.first_name;
cout << "Please fill in your last name." << endl;
cin >> contact_1.last_name;
cout << "Please fill in your email adress." << endl;
cin >> contact_1.emails;
cout << "Please fill in your cellphone number." << endl;
cin >> contact_1.cellphone;

zijn.

Voor meer informatie over pointers:
http://www.cplusplus.com/doc/tutorial/pointers.html
 
zo had ik het eerst maar dan krijg ik dit

1>------ Build started: Project: 40lessen, Configuration: Debug Win32 ------
1>Compiling...
1>adressbook.cpp
1>c:\documents and settings\\my documents\visual studio 2008\projects\40lessen\40lessen\adressbook.cpp(34) : error C2819: type 'contact' does not have an overloaded member 'operator ->'
1> c:\documents and settings\chris van den berg\my documents\visual studio 2008\projects\40lessen\40lessen\adressbook.cpp(10) : see declaration of 'contact'
1> did you intend to use '.' instead?
1>c:\documents and settings\\my documents\visual studio 2008\projects\40lessen\40lessen\adressbook.cpp(34) : error C2232: '->contact::first_name' : left operand has 'struct' type, use '.'
1>c:\documents and settings\chris van den berg\my documents\visual studio 2008\projects\40lessen\40lessen\adressbook.cpp(36) : error C2819: type 'contact' does not have an overloaded member 'operator ->'
1> c:\documents and settings\\my documents\visual studio 2008\projects\40lessen\40lessen\adressbook.cpp(10) : see declaration of 'contact'
1> did you intend to use '.' instead?
1>c:\documents and settings\chris van den berg\my documents\visual studio 2008\projects\40lessen\40lessen\adressbook.cpp(36) : error C2232: '->contact::last_name' : left operand has 'struct' type, use '.'
1>c:\documents and settings\chris van den berg\my documents\visual studio 2008\projects\40lessen\40lessen\adressbook.cpp(38) : error C2819: type 'contact' does not have an overloaded member 'operator ->'
1> c:\documents and settings\\my documents\visual studio 2008\projects\40lessen\40lessen\adressbook.cpp(10) : see declaration of 'contact'
1> did you intend to use '.' instead?
1>c:\documents and settings\chris van den berg\my documents\visual studio 2008\projects\40lessen\40lessen\adressbook.cpp(38) : error C2232: '->contact::emails' : left operand has 'struct' type, use '.'
1>c:\documents and settings\chris van den berg\my documents\visual studio 2008\projects\40lessen\40lessen\adressbook.cpp(40) : error C2819: type 'contact' does not have an overloaded member 'operator ->'
1> c:\documents and settings\\my documents\visual studio 2008\projects\40lessen\40lessen\adressbook.cpp(10) : see declaration of 'contact'
1> did you intend to use '.' instead?
1>c:\documents and settings\\my documents\visual studio 2008\projects\40lessen\40lessen\adressbook.cpp(40) : error C2232: '->contact::cellphone' : left operand has 'struct' type, use '.'
1>Build log was saved at "file://c:\Documents and Settings\\My Documents\Visual Studio 2008\Projects\40lessen\40lessen\Debug\BuildLog.htm"
1>40lessen - 8 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
 
Laatst bewerkt:
Heel vreemd...

als ik de volgende code
Code:
//Adressbook

#include <iostream>
using namespace std;




// contact sjabloon
struct contact {
char first_name[30];
char last_name[30];
char emails[50];
char cellphone[10];
};



// laat contact gegevens zien
void show_contact(contact contact_1)
{
cout <<"First name:" << contact_1.first_name << endl;
cout <<"Last name:" << contact_1.last_name << endl;
cout <<"email adress:" << contact_1.emails << endl;
cout <<"cellphone number:" << contact_1.cellphone << endl;


}

void main(void)
{ contact contact_1;
// vul de gegevens in
cout << "Please fill in your first name." << endl;
cin >> contact_1.first_name;
cout << "Please fill in your last name." << endl;
cin >> contact_1.last_name;
cout << "Please fill in your email adress." << endl;
cin >> contact_1.emails;
cout << "Please fill in your cellphone number." << endl;
cin >> contact_1.cellphone;

show_contact(contact_1);


}

Bij mij compile en uitvoer werkt het.

En een rare vraag, maar zijn de '->' dan echt veranderd in '.'?(opgeslagen) Want in de compile errors lijkt er te staan dat '.' gebruikt moet worden i.p.v. '->'?(dus dat zou betekenen, dat er nog steeds '->' staan)
http://msdn.microsoft.com/en-us/library/1wdkh3kk(VS.80).aspx
 
:thumb: klopt ging iets niet goed werkt nu wel, bedankt voor de hulp en je zal nog wel van me horen :D
 
De code is te compileren maar als er ok ingevoerd wordt als dat gevraagt wordt blijft hij hier om vragen ipv het programma te eindiggen, wat doe ik fout?


//Adressbook

#include <iostream>
using namespace std;


char temp[3];

// contact sjabloon
struct contact {
char first_name[30];
char last_name[30];
char emails[50];
char cellphone[10];
};



// laat contact gegevens zien
void show_contact(contact contact_1)
{
cout <<"First name:" << contact_1.first_name << endl;
cout <<"Last name:" << contact_1.last_name << endl;
cout <<"email adress:" << contact_1.emails << endl;
cout <<"cellphone number:" << contact_1.cellphone << endl;


}

//ff op ok checken....
int ff_checken()
{
cout << "thank you, please type \"ok\" to continue" << endl;
cin >>temp;



if(temp=="ok")
{
return 0;
}

else
{ cout << "Please type \"ok\" to continue" << endl;
cin >>temp;
ff_checken();

}
}
void main(void)
{ contact contact_1;
// vul de gegevens in
cout << "Please fill in your first name." << endl;
cin >> contact_1.first_name;
cout << "Please fill in your last name." << endl;
cin >> contact_1.last_name;
cout << "Please fill in your email adress." << endl;
cin >> contact_1.emails;
cout << "Please fill in your cellphone number." << endl;
cin >> contact_1.cellphone;

show_contact(contact_1);
ff_checken();




}
 
heb een kleine verandering gemaakt maar de vraag blijft onveranderd

//Adressbook

#include <iostream>
using namespace std;


char temp[3];

// contact sjabloon
struct contact {
char first_name[30];
char last_name[30];
char emails[50];
char cellphone[10];
};



// laat contact gegevens zien
void show_contact(contact contact_1)
{
cout <<"First name:" << contact_1.first_name << endl;
cout <<"Last name:" << contact_1.last_name << endl;
cout <<"email adress:" << contact_1.emails << endl;
cout <<"cellphone number:" << contact_1.cellphone << endl;


}

//ff op ok checken....
int ff_checken()
{




if(temp=="ok")
{
return 0;
}

else


{ cout << "Please type \"ok\" to continue" << endl;
cin >>temp;
ff_checken();

}
}
void main(void)
{ contact contact_1;
// vul de gegevens in
cout << "Please fill in your first name." << endl;
cin >> contact_1.first_name;
cout << "Please fill in your last name." << endl;
cin >> contact_1.last_name;
cout << "Please fill in your email adress." << endl;
cin >> contact_1.emails;
cout << "Please fill in your cellphone number." << endl;
cin >> contact_1.cellphone;

show_contact(contact_1);
cout << "thank you, please type \"ok\" to continue" << endl;
cin >>temp;
ff_checken();




}
 
Mhmm het probleem ken ik. Zelf ook vaak meegemaakt. Zo ver ik weet is het niet mogelijk om array van char's te vergelijken met de standaard == operator.

Gelukkig bestaat er de functie strcmp, die twee array's van characters als argument neemt en een 0 terug geeft als ze gelijk zijn.

Dus in u geval zou het:
Code:
//Adressbook

#include <iostream>
using namespace std;


// contact sjabloon
struct contact {
	char first_name[30];
	char last_name[30];
	char emails[50];
	char cellphone[10];
};



// laat contact gegevens zien
void show_contact(contact contact_1)
{
	cout <<"First name:" << contact_1.first_name << endl;
	cout <<"Last name:" << contact_1.last_name << endl;
	cout <<"email adress:" << contact_1.emails << endl;
	cout <<"cellphone number:" << contact_1.cellphone << endl;


}

//ff op ok checken....
int ff_checken()
{
	char temp[3];
	cout << "thank you, please type \"ok\" to continue" << endl;
	cin >>temp;
	if(strcmp(temp,"ok")==0)
	{
		return 0;
	}
	else
	{
		ff_checken();
	}
}
void main(void)
{
	contact contact_1;
	// vul de gegevens in
	cout << "Please fill in your first name." << endl;
	cin >> contact_1.first_name;
	cout << "Please fill in your last name." << endl;
	cin >> contact_1.last_name;
	cout << "Please fill in your email adress." << endl;
	cin >> contact_1.emails;
	cout << "Please fill in your cellphone number." << endl;
	cin >> contact_1.cellphone;

	show_contact(contact_1);

	ff_checken();

}
worden.

Ik heb trouwens een beetje rond gegooid met de code en tabs om het voor mezelf wat overzichtelijker te maken. Maar het gaat echt alleen om het gedeelte waar temp=="ok" vervangen is door strcmp(temp,"ok")==0.

En misschien is het handig om volgende keer als u code(snippets) post, de code tussen CODE tags te zetten.(met het #-knopje)

Voor meer informatie over strcmp zie:
http://www.cplusplus.com/reference/clibrary/cstring/strcmp.html
 
he bedankt, weet nu weer wat meer zal ook die code voortaan goed posten.
 
ik kom ff niet helemaal uit de feedback van de compiler maar wat doe ik fout waardoor ik deze error krijg?


Code:
1>------ Build started: Project: 40lessen, Configuration: Debug Win32 ------
1>Compiling...
1>adressbook2.cpp
1>c:\documents and settings\\my documents\visual studio 2008\projects\40lessen\40lessen\adressbook2.cpp(75) : error C2660: 'show_rank' : function does not take 0 arguments
1>Build log was saved at "file://c:\Documents and Settings\\My Documents\Visual Studio 2008\Projects\40lessen\40lessen\Debug\BuildLog.htm"
1>40lessen - 1 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========


// ff wat onzin.......
void show_rank(contact contact_1)
{
	if(strcmp(contact_1.first_name,"john")==0)
	{
		cout << "he mafkees, biertje?" << endl;
	}
	else if (strcmp(contact_1.first_name,"chris")==0)
	{
		cout << "welcome back chris" << endl;
	}
}
void main(void)
{
	contact contact_1;
	// vul de gegevens in
	cout << "Please fill in your first name." << endl;
	cin >> contact_1.first_name;
	cout << "Please fill in your last name." << endl;
	cin >> contact_1.last_name;
	cout << "Please fill in your email adress." << endl;
	cin >> contact_1.emails;
	cout << "Please fill in your cellphone number." << endl;
	cin >> contact_1.cellphone;

	show_contact(contact_1);

	ff_checken();

	show_rank();
	cout << "type exit to stop the program" << endl;
	cin >>temp;
	

}
 
Laatst bewerkt:
Code:
// ff wat onzin.......
void show_rank(contact contact_1)
{
	if(strcmp(contact_1.first_name,"john")==0)
	{
		cout << "he mafkees, biertje?" << endl;
	}
	else if (strcmp(contact_1.first_name,"chris")==0)
	{
		cout << "welcome back chris" << endl;
	}
}
void main(void)
{
	contact contact_1;
	// vul de gegevens in
	cout << "Please fill in your first name." << endl;
	cin >> contact_1.first_name;
	cout << "Please fill in your last name." << endl;
	cin >> contact_1.last_name;
	cout << "Please fill in your email adress." << endl;
	cin >> contact_1.emails;
	cout << "Please fill in your cellphone number." << endl;
	cin >> contact_1.cellphone;

	show_contact(contact_1);

	ff_checken();

	show_rank(contact_1);
	cout << "type exit to stop the program" << endl;
	cin >>temp;
	

}

Zou moeten werken. U had show_rank() geschreven i.p.v. show_rank(contact_1). De error was 'show_rank' : function does not take 0 arguments, wat klopt, want show_rank heeft een contact als argument nodig en heeft dus 1 argument(s).
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan