Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » problem mit struct

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
03.07.2005, 20:21 Uhr
~Skippy
Gast


habe ein problem mit meinem quellcode ich schreibe grade nen webserver
dieser soll intern ein gästebuch und forum besitzen die in der standartkonfiguration alles in
textdateien speichern

hier erstmal der quellcode für die betreffende funktion

MAIN.CPP

C++:
#include <cstdlib>
#include <iostream>

#include "gaestebuch.cpp"


using namespace std;

int main(int argc, char *argv[])
{
SaveGuestBook(room2);
}





GAESTEBUCH.CPP

C++:
#include <iostream>                            // Include this for the cin/cout classes
#include <fstream>                            // Include this for the ifstream class
#include <string>                            // Include this for the string class
#include <windows.h>                        // Include this for the Sleep() function

using namespace std;                        // Use the standard namespace




struct tRoom
{                                                
//Dies sind die benötigten strings fürs Gästebuch
    string gDATE;                        //     Datum und Uhrzeit des Eintrages        
    string gTITEL;                        //     Titel des Eintrages
    string gEMAIL;                        //  Die Email der users der den Eintrag vornahm
    string gUSERNAME;                    //     Den Usernamen der angegeben wurde
    string gTEXT;                        //     Dies ist der eingebene Text        
};


struct tRoom room2 = { "30/02/05", "Das ist Der TITEL", "SKIPPY@GMX:DE", "SKIPPY", "DER Blöde TEXT"} ;


void SaveGuestBook(struct tRoom room)
{
    // Create some temporary strings for reading in data from world.txt
    string strLine = "";
    string strTemp = "";
    
//hier wird der Datensatz zusammengestellt als Trennzeichen wird   |@| verwendet
    string strgMESSAGE = room.gDATE + "|@|" + room.gTITEL + "|@|" + room.gEMAIL + "|@|"+ room.gUSERNAME + "|@|"+ room.gTEXT;

      ofstream dat_aus;
      dat_aus.open("Guestbook.txt", ios_base::app);
       /*Beretta: Dateiname nun Fest. ios_base::app; neue Daten werden nun angehängt.*/
                        if(!dat_aus)
                        {
                          cout<<"Error, cant find file!"<<endl;
                        }

                        dat_aus<<strgMESSAGE<< "\n" <<endl;
                        dat_aus.close();
}



mein proble ist das er mir als fehlermeldung

multiple definition of `SaveGuestBook(tRoom)' ausgibt ich bekomme das net hin

in der main wird das später im server aufgerufen und die daten übermittelt

beding es soll so wenig wie möglich in main stehen da später aus der gaestebuch.cpp
ne dll werden soll

ich danke euch schonmal für die hilfe
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
03.07.2005, 21:07 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


wenn du es nicht nocheinmal woanders definiert hast ist das vom überfliegen her in ordnung... ein wenig pervers ist das du GAESTEBUCH.CPP includierst und dafür keinen header geschrieben hast... vielleicht mag dein compiler das ja nicht...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
03.07.2005, 21:42 Uhr
~Skippy
Gast


daran liegts leider net(hab mal probeweiser mit header probiert

aber der selbe fehler


hab das ganze ja mal aus nem tutorial gehabt bevor ich das aber ganz eingebaut habe ist mir der firefox abgekackt jetzt sitze ich schon den ganzen nachmittag dran die fehlenden sachen zu ergenzen das mit der struckt war eigentlich für ne kleinen world editor der laden und speichern konnte so wie ich das jetzt bräuchte

da waren aber noch ein paar kleinigkeiten anders



Zitat:
struct tRoom room2 = { "30/02/05", "Das ist Der TITEL", "SKIPPY@GMXE", "SKIPPY", "DER Blöde TEXT"} ;


war eigentlich

Zitat:
tRoom room;


und

Zitat:
void SaveGuestBook(struct tRoom room)


hieß eigentlich

Zitat:
void SaveGuestBook(tRoom &room)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
03.07.2005, 22:08 Uhr
Spacelord
Hoffnungsloser Fall


Wie hatte denn deine Headerdatei ausgesehen?
Ich bin mir ziemlich sicher dass dein Cpp-Include dein Problem ist.Damit hast du in 2 Übersetzungseinheiten die gleichen Definitionen.

MfG Spacelord
--
.....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
03.07.2005, 22:11 Uhr
~Skippy
Gast


hier die header datei


C++:
struct tRoom
{                                                
//Dies sind die benötigten strings fürs Gästebuch
    string gDATE;                        //     Datum und Uhrzeit des Eintrages        
    string gTITEL;                        //     Titel des Eintrages
    string gEMAIL;                        //  Die Email der users der den Eintrag vornahm
    string gUSERNAME;                    //     Den Usernamen der angegeben wurde
    string gTEXT;                        //     Dies ist der eingebene Text        
};


struct tRoom room = { "30/02/05", "Das ist Der TITEL", "SKIPPY@GMX:DE", "SKIPPY", "DER Blöde TEXT"} ;

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
04.07.2005, 09:48 Uhr
Th



Dazu kann ich nur sagen: dir fehlen Grundlagen der C Programmierung. Schau mal in der FAQ nach "Include-Guards" bzw "extern"...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
04.07.2005, 15:41 Uhr
~Skippy
Gast


erstens hab ich auf dieser seite nichts zu include guards gefunden
zweitens liegts auch nicht daran da selbst wenn ich alles in einer datei habe der fehler auftritt

und wie ich schon geschrieben hab bin ich sogar nach nem tutorial gegangen und da waren denn nochmehr fehlermeldung

die war eben jene version mit dem geringsten fehlermeldungen
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
04.07.2005, 17:48 Uhr
(un)wissender
Niveauwart


Der Code läuft (die beiden cpp-Dateien). Natürlich kannst du so nicht weiter machen. cpp includiert man nie (außer ev. bei templates, aber das ist eine andere Geschichte)! Und Header haben immer include guards.
--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
04.07.2005, 19:20 Uhr
~Skippy
Gast


So das wären erst mal die berichtigten dateien danke schonmal dafür

nur ein problem hätt ich noch er sagt mir als fehlermeldung:
12 .......main.cpp `SaveGuestBook' undeclared (first use this function)

glaube zu wissen das es an dem fehlenden prototypen liegt
aber ich bekomme den nicht hin er sagt mir immer irgendwelche fehlermeldungen

wie sieht denn eigentlich der prototyp für ein struct aus?

und danke schonmal für die hilfe


gaestebuch.h

C++:
#include <iostream>                            // Include this for the cin/cout classes
#include <fstream>                            // Include this for the ifstream class
#include <string>                            // Include this for the string class
#include <windows.h>

using namespace std;                        // Use the standard namespace

struct tRoom
{                                                
//Dies sind die benötigten strings fürs Gästebuch
    string gDATE;                        //     Datum und Uhrzeit des Eintrages        
    string gTITEL;                        //     Titel des Eintrages
    string gEMAIL;                        //  Die Email der users der den Eintrag vornahm
    string gUSERNAME;                    //     Den Usernamen der angegeben wurde
    string gTEXT;                        //     Dies ist der eingebene Text        
};


struct tRoom room = { "30/02/05", "Das ist Der TITEL", "SKIPPY@GMX:DE", "SKIPPY", "DER Blöde TEXT"};




gaestebuch.cpp

C++:
#include "gaestebuch.h"



void SaveGuestBook(struct tRoom room)
{
    // Create some temporary strings for reading in data from world.txt
    string strLine = "";
    string strTemp = "";
    
//hier wird der Datensatz zusammengestellt als Trennzeichen wird   |@| verwendet
    string strgMESSAGE = room.gDATE + "|@|" + room.gTITEL + "|@|" + room.gEMAIL + "|@|"+ room.gUSERNAME + "|@|"+ room.gTEXT;

      ofstream dat_aus;
      dat_aus.open("Guestbook.txt", ios_base::app);
       /*Beretta: Dateiname nun Fest. ios_base::app; neue Daten werden nun angehängt.*/

                        if(!dat_aus)
                        {
                          cout<<"Error, cant find file!"<<endl;
                        }

                        dat_aus<<strgMESSAGE<< "\n" <<endl;
                        dat_aus.close();
}




main.cpp

C++:
#include <cstdlib>
#include <iostream>
#include "gaestebuch.h"


using namespace std;

int main(int argc, char *argv[])
{
SaveGuestBook(&room);
}

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
04.07.2005, 19:28 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


hau den prototypen der funktion noch in den header rein:


C++:
void SaveGuestBook(struct tRoom room);


--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: