zmodemMedlem sedan apr. 200277 inlägg Jag är väldigt nybörjare på C++ och får inte det där med strängar att funka... har läst en tråd om det innan här också men den hjälpte inte mig...
Har en bok där följande exempel visas:
#include <iostream.h>
#include <string>
main ()
{
string s1 = "Hello world!";
cout << s1 << endl;
}
Jag stoppar in koden i MS Visual C++ och får följande meddelande:
C:\projekt\cpp\string\string.cpp(10) : error C2065: 'string' : undeclared identifier
C:\projekt\cpp\string\string.cpp(10) : error C2146: syntax error : missing ';' before identifier 's1'
C:\projekt\cpp\string\string.cpp(10) : error C2065: 's1' : undeclared identifier
C:\projekt\cpp\string\string.cpp(10) : error C2440: '=' : cannot convert from 'char [13]' to 'int'
This conversion requires a reinterpret_cast, a C-style cast or function-style cast
vad gör jag för fel? Har fått ungefär samma fel när jag körde koden i en gammal Borland Turbo C++ och den brukar inte vara lika gnällig som Microsofts...
BeatboxMedlem sedan okt. 20013 217 inlägg Antingen :
#include <iostream.h>
#include <string>
using namespace std;
main ()
{
string s1 = "Hello world!";
cout << s1 << endl;
}
eller....
#include <iostream.h>
#include <string>
main ()
{
std::string s1 = "Hello world!";
cout << s1 << endl;
}
SweyMedlem sedan apr. 20003 971 inlägg std
Ersätt #include <iostream.h> med #include <iostream>. Den förstnämnda är inte standard. Endast C använder .h som filnamnstillägg för header-filer.
string-klassen finns i namnutrymmet std. Om du dessutom använder cstdlib istället för stdlib.h ska (om den följer standard) alla funktioner hamna i namnutrymmet std.
Fördelen med att ha alla standard-funktioner/klasser i std är att du kan skapa funktioner och klasser med samma namn, utan att det blir namnkollision.
Du kommer åt en funktion/klass genom att ange std:: före funktionen/klassen. Vill du inte skriva std kan du importera allting med hjälp av "using namespace std;" eller enstaka funktioner/klasser med "using <funktion eller klass>;". I regel ska man undvika "using namespace".