webForumDet fria alternativet

Problem med strängar.

7 svar · 577 visningar · startad av Honken

HonkenMedlem sedan apr. 20029 inlägg
#1

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
#2

r: <såg nu att det inte var den koden du hade problem med>

:r

PeWMedlem sedan juni 200010 432 inlägg
#3

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
#4

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
#5

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
#6

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
#7

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 ;)

HonkenMedlem sedan apr. 20029 inlägg
#8

Tack så mycket!!

129 ms totalt · 3 externa anrop · v20260731065814-full.16f3d68c
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)