HonkenMedlem sedan apr. 20029 inlägg Jag har blivit tipsad om att använda string istället för char. I följande exempel funkar et utmärkt:
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
int main(int argc, char* argv[])
{
struct TEST
{
string str;
};
TEST test_1;
test_1.str = "Test";
cout \<\< test_1.str;
return 0;
}
Men problemet är när jag i mitt större projekt (skall bli ett bilspel i DOS) kommer förljande felmedelande upp när jag gör exakt samma sak:
error C2146: syntax error : missing ';' before identifier 'str'
error C2501: 'string' : missing storage-class or type specifiers
error C2501: 'str' : missing storage-class or type specifiers
Var ligger felet........ spelar det någon roll i vilken årdening headerfilerna ligger i?
PeWMedlem sedan juni 200010 432 inlägg r: <såg nu att det inte var den koden du hade problem med>
:r
PeWMedlem sedan juni 200010 432 inlägg Honken ->
Kolla så att du har #include<string> och det innan "using namespace std" i din fil... och kan du inte visa mer kod från den filen du har problem med?
PeWMedlem sedan juni 200010 432 inlägg Splittade tråden
...eftersom den hamnade långt från topic och Honken kanske vill ha svar på sin fråga i första hand. Diskussionen om structar hamnade här -> http://www.webforum.nu/showthread.php?s=&threadid=41025
PeW /moderator
HonkenMedlem sedan apr. 20029 inlägg Här kommer en del utav programmet:
//Standard Headerfiler//
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <cstdlib>
#include <stdio.h>
#include <time.h>
#include <windows.h>
#include <winbase.h>
#include <wincon.h>
//Egna Headerfiler//
#include "cars.h"
#include "gameoption.h"
#include "race.h"
#include <string.h>
using namespace std;
Strukturen ligger i en egen headerfil vid namn cars.h:
struct Cars
{
string test ;
// char * car_name[50];
int car_yrmodel;
int car_price;
int car_hp;
int car_topspeed;
int exspeed;
};
Cars car_1;
//////////////////////////////////////////////////////////////
Tillbaka till main.ccp
int main()
{
car_1.test = "Test ";
cout << car_1.test;
}
Hoppas detta hjälper lite annars kan jag skick med hela programmet....
Tack på förhand
ChainsawMedlem sedan sep. 20001 124 inlägg Det förklarar saken... Du måste lägga in #include <string> och using namespace std; även i cars.h. Gör det till en vana att *alltid* inkludera de filer som behövs för att header-filen ska kunna fungera.
PeWMedlem sedan juni 200010 432 inlägg Som en not:
Man bör undvika att skriva "using namespace std" i headerfiler. Kör ist med namespace::vad_det_nu_är... när det ska till, typ:
std::string str;
std::vector<template> v;
m.m...
Annars kan det ena mystiska felet efter det andra dyka upp ;)