webForumDet fria alternativet

Kompilatorn tillåter inte string

C/C++ur C/C++

9 svar · 372 visningar · startad av kobranturre

Medlem sedan maj 2004693 inlägg
Frågan#1

Det är Dev-c++ jag pratar om.

Denna enkla kod borde ju gå

#include <iostream>
#include <string>

struct Produkt {
  string namn;
  double  pris;
  int    antal;
};

int main(){
    Prudukt jag;
    
    jag.namn = "Hej";
    jag.pris = 5.2;
    jag.antal = 5;
    
    system("pause");
    return 0;
}

5 Work\C++\Test\struct1.cpp ' string' is used as a type, but is not defined as a type.
Work/C++/Test/struct1.cpp Work\C++\Test\C In function `int main()':
11 Work\C++\Test\struct1.cpp ` Prudukt' undeclared (first use this function)
(Each undeclared identifier is reported only once for each function it appears
11 Work\C++\Test\struct1.cpp syntax error before `;' token
13 Work\C++\Test\struct1.cpp ` jag' undeclared (first use this function)

Någon här som har erfarenheter av struct?

Medlem sedan juli 2001728 inlägg
#2

jag kan inte c++ så bra, men ska det verkligen vara prudukt där?

Medlem sedan aug. 20039 342 inlägg
#3
  1. Produkt är felstavat som "Prudukt"
  2. string är inte en typ. Kör med typ
char[] namn;
Medlem sedan juni 20019 024 inlägg
#4

Jag kan inte C++ alls, men det du försöker göra är att tilldela ett strängvärde (string) till en struct, vilken inte finns, därav felmeddelandet "string is used as a type, but is definied as a type".

Således, felstavning på Prudukt som tronez säger. :e

Medlem sedan maj 2004693 inlägg
#5

haha felstavningen tog bort några felmeddelanden.

Men allså det ska gå o köra string i struct.

http://www.infa.abo.fi/~chakie/kurser/c++/html/sammansatta-datatyper.html

Medlem sedan aug. 20039 342 inlägg
#6

Ska och ska... Det är upp till varje tillverkare.

Medlem sedan okt. 20023 030 inlägg
#7

Eller så testar du helt enkelt att byta ut string mot std::string alt. lägga till using namespace std efter dina includes. Det borde funka då. ;)

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

struct Produkt {
  string namn;
  double  pris;
  int    antal;
};

int main(){
    Prudukt jag;
    
    jag.namn = "Hej";
    jag.pris = 5.2;
    jag.antal = 5;
    
    system("pause");
    return 0;
}
Medlem sedan maj 2004693 inlägg
#8

tackar nexus. Visste inte att man var tvungen att använda std:: framför string. Man fick lära sig något nytt! :)

Medlem sedan juli 2002581 inlägg
#9

nitro2k01 skrev:

Ska och ska... Det är upp till varje tillverkare.

Näe, det är det verkligen inte! x(
std::string är en del av standarden och uppför sig som vilken annan typ som helst.

Medlem sedan aug. 20039 342 inlägg
#10

My bad, trodde att även C++ hade problem med fixed-length -strängar.

137 ms totalt · 3 externa anrop · v20260731065814-full.25f56b17
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)