Windows Azure Cloud Storage ermöglicht es Ihnen bereits ab 0,10€ pro GB/Monat die Vorteile der Cloud zu nutzen.
Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.de  
   
Advanced Developers Conference     
Bücher-Shop mit Amazon (Buchkategorien)C++ : Referenzen zu C++ : C++ Builder : Visual C++ : C# : Java : Spieleprogrammierung : Systemprogrammierung Linux : Software-Entwicklung : .NET : Compilertechnik : Algorithmen & Datenstrukturen : Objektorientierung : Entwurfsmuster : UML : eXtreme Programming : Scrum : Projektmanagement : Software-Testing : Datenbanken : Tom DeMarco : Dilbert : User Friendly
C/C++ Forum :: C++ (auch C++0x und C++11) ::  Warum geht mein Programm nicht :( ?  
Gehen Sie zu Seite 1, 2, 3, 4  Weiter
  Zeige alle Beiträge auf einer Seite
Auf Beitrag antworten
Autor Nachricht
Barti20
Mitglied

Benutzerprofil
Anmeldungsdatum: 01.02.2010
Beiträge: 24
Beitrag Barti20 Mitglied 08:50:17 05.02.2010   Titel:   Warum geht mein Programm nicht :( ?            Zitieren

SO Halli Hallo ich möchte einen Namensgenerator schreiben. Das ganze soll so funktionieren:
es werden 3 datein eingelesen und dann werden zufallszahlen ermittelt die die zeilen im txt dokument angeben. Ich deke es ist ein relativ simples programm nur ich scheitere momentan am ein lesen da es eine lange namesliste ist denke ich ist es sinnvoll den string in einem vector zu speichern aber er machts einfach net und ich weiss net warum das hier ist mein bisheriger code:
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#include <cstdlib>
#include <iostream>
#include <fstream>
#include <string>
#include <stdio.h>
#include <vector>
#include <string>
//#inlcude <stdlib>
using namespace std;
double dateigroesse;
ifstream testdatei;
string names;
vector<string> puffer;



 
   
void dateioeffnen ()
{
                                                  //variable für die zu öffnende Datei
    testdatei.open ("c:\\test.txt", ifstream::in);   // sequenz für das öffnen der datei
   
    if (0==testdatei)
    {
       cout << "Fehlerhafte Datein benachrichtigen Sie den Administrator" << endl;
    }
    else
    {
        cout << "Datei erfolgreich geoeffnet"<<endl;
    }
   
}

void dateilesen()
{
     dateioeffnen();
    while(testdatei.good()) {
        getline(testdatei, names, ';');
        puffer.push_back(testdatei);
    }
}
     
     

   

int main(int argc, char *argv[])
{
    dateilesen();
    system("PAUSE");
    return EXIT_SUCCESS;
}

/*for ( i  = 0 ; i <= random; i++ ) { if (i < random)
{ code für durch die textdatei gehen zeile für zeile }
else { zeile zwischenspeichern bzw. in neue datei schreiben} }
 */
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#include <cstdlib>
#include <iostream>
#include <fstream>
#include <string>
#include <stdio.h>
#include <vector>
#include <string>
//#inlcude <stdlib>
using namespace std;
double dateigroesse;
ifstream testdatei;
string names;
vector<string> puffer;





void dateioeffnen ()
{
//variable für die zu öffnende Datei
testdatei.open ("c:\\test.txt", ifstream::in); // sequenz für das öffnen der datei

if (0==testdatei)
{
cout << "Fehlerhafte Datein benachrichtigen Sie den Administrator" << endl;
}
else
{
cout << "Datei erfolgreich geoeffnet"<<endl;
}

}

void dateilesen()
{
dateioeffnen();
while(testdatei.good()) {
getline(testdatei, names, ';');
puffer.push_back(testdatei);
}
}





int main(int argc, char *argv[])
{
dateilesen();
system("PAUSE");
return EXIT_SUCCESS;
}

/*for ( i = 0 ; i <= random; i++ ) { if (i < random)
{ code für durch die textdatei gehen zeile für zeile }
else { zeile zwischenspeichern bzw. in neue datei schreiben} }
*/
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#include <cstdlib>
#include <iostream>
#include <fstream>
#include <string>
#include <stdio.h>
#include <vector>
#include <string>
//#inlcude <stdlib>
using namespace std;
double dateigroesse;
ifstream testdatei;
string names;
vector<string> puffer;



 
   
void dateioeffnen ()
{
                                                  //variable für die zu öffnende Datei
    testdatei.open ("c:\\test.txt", ifstream::in);   // sequenz für das öffnen der datei
   
    if (0==testdatei)
    {
       cout << "Fehlerhafte Datein benachrichtigen Sie den Administrator" << endl;
    }
    else
    {
        cout << "Datei erfolgreich geoeffnet"<<endl;
    }
   
}

void dateilesen()
{
     dateioeffnen();
    while(testdatei.good()) {
        getline(testdatei, names, ';');
        puffer.push_back(testdatei);
    }
}
     
     

   

int main(int argc, char *argv[])
{
    dateilesen();
    system("PAUSE");
    return EXIT_SUCCESS;
}

/*for ( i  = 0 ; i <= random; i++ ) { if (i < random)
{ code für durch die textdatei gehen zeile für zeile }
else { zeile zwischenspeichern bzw. in neue datei schreiben} }
 */


und das sind die Fehlermeldungen :
Code:
40 D:\Users\Arbeitsdatein\T.SID53s\Namensgenerator\namensgenerator 3.cpp no matching function for call to `std::vector<std::string, std::allocator<std::string> >::push_back(std::ifstream&)'

 note C:\nonbku\Dev-Cpp\include\c++\3.4.2\bits\stl_vector.h:557 candidates are: void std::vector<_Tp, _Alloc>::push_back(const _Tp&) [with _Tp = std::string, _Alloc = std::allocator<std::string>]
Code:
40 D:\Users\Arbeitsdatein\T.SID53s\Namensgenerator\namensgenerator 3.cpp no matching function for call to `std::vector<std::string, std::allocator<std::string> >::push_back(std::ifstream&)'

note C:\nonbku\Dev-Cpp\include\c++\3.4.2\bits\stl_vector.h:557 candidates are: void std::vector<_Tp, _Alloc>::push_back(const _Tp&) [with _Tp = std::string, _Alloc = std::allocator<std::string>]
Code:
40 D:\Users\Arbeitsdatein\T.SID53s\Namensgenerator\namensgenerator 3.cpp no matching function for call to `std::vector<std::string, std::allocator<std::string> >::push_back(std::ifstream&)'

 note C:\nonbku\Dev-Cpp\include\c++\3.4.2\bits\stl_vector.h:557 candidates are: void std::vector<_Tp, _Alloc>::push_back(const _Tp&) [with _Tp = std::string, _Alloc = std::allocator<std::string>]


hoffe ihr könnt mir sagen was ich dagegen machen kann ich entwickle auf der IDE Bloodshed Dev-C++ ich sag scon mal danke im voraus.
LG
Barti
l'abra d'or
Mitglied

Benutzerprofil
Anmeldungsdatum: 26.12.2009
Beiträge: 1201
Beitrag l'abra d'or Mitglied 09:23:47 05.02.2010   Titel:              Zitieren

puffer.push_back(testdatei);
->
puffer.push_back(names);
Barti20
Mitglied

Benutzerprofil
Anmeldungsdatum: 01.02.2010
Beiträge: 24
Beitrag Barti20 Mitglied 10:15:51 05.02.2010   Titel:              Zitieren

hey super danke :) habe aber auch schon das nächste problem ...
will jet ne random funktion schreiben und die um die schleife legen wie kann ich die zeilenanzahl auslesen aus dem vector ?

so siehts momentan aus

Code:
srand (time(NULL));

for (int x=1;x<=6;x++)
{
  cout << rand()%49 << endl;
}
Code:
srand (time(NULL));

for (int x=1;x<=6;x++)
{
cout << rand()%49 << endl;
}
Code:
srand (time(NULL));

for (int x=1;x<=6;x++)
{
  cout << rand()%49 << endl;
}

da wo die 49 jetzt is soll die Zeilenanzahl hin.
Danke schon mal für antwort :)
Lg
Bart
l'abra d'or
Mitglied

Benutzerprofil
Anmeldungsdatum: 26.12.2009
Beiträge: 1201
Beitrag l'abra d'or Mitglied 10:20:17 05.02.2010   Titel:              Zitieren

Hier ist die Doku zu std::vector:
http://www.cplusplus.com/reference/stl/vector/
Solltest du dir bookmarken, denn da sind alle std-C++-Sachen dokumentiert.
_matze
Mitglied

Benutzerprofil
Anmeldungsdatum: 31.07.2007
Beiträge: 9275
Beitrag _matze Mitglied 10:21:01 05.02.2010   Titel:              Zitieren

Die Anzahl der Elemente eines std::vector kriegst du mit der Methode size(). Das kannst du auch alles in der Doku finden.

_________________
Wie viele atheistische Babys hat man schon aus Versehen - oder gar mit Absicht! - getauft?
Barti20
Mitglied

Benutzerprofil
Anmeldungsdatum: 01.02.2010
Beiträge: 24
Beitrag Barti20 Mitglied 11:33:55 05.02.2010   Titel:              Zitieren

Hmm also jetzt geht soweit alles hier mal der Komplette Quellcode :
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#include <cstdlib>
#include <iostream>
#include <fstream>
#include <string>
#include <stdio.h>
#include <vector>
#include <string>
#include <fcntl.h>
#include <io.h>
//#include <sys.h>
//#inlcude <stdlib>
using namespace std;

ifstream testdatei;
string names;
vector<string> puffer;
int newtext;


 
   
void dateioeffnen ()
{
                                                 
    testdatei.open ("c:\\test.txt", ifstream::in);   //variable für die zu öffnende Datei
   
    if (0==testdatei)                                // sequenz für das öffnen der datei
    {
       cout << "Fehlerhafte Datein benachrichtigen Sie den Administrator" << endl; //Fehler Benarichtigung
    }
    else
    {
        cout << "Datei erfolgreich geoeffnet"<<endl;
    }
   
}

void dateilesen()
{
     dateioeffnen();
    while(testdatei.good()) {            //while schleife liest datei zeile für zeile aus
        getline(testdatei, names, ';');  // liest zeilen (zu lesende datei, zu speichernde variable, lese kriterien)
        puffer.push_back(names);          //ausgelesene datein in vector schreiben
        cout << names << endl;            // vector ausgabe
       
    }
}
     
     

void random ()                            //random funktion zum generien der zu schreibenden zeilen
{
     srand (time(NULL));

for (int x=1;x<=10;x++)                   // festlung der anzahl der zu generienden namen
{
  rand()%puffer.size();                   // Zahlen berreich festlegung
}
}

void dateierstellen()
{
    if((newtext = open ("c:\\newtext.txt", O_WRONLY|O_CREAT)) !-1 ;
   
   

}

int main(int argc, char *argv[])
{
    dateilesen();
    //random();
    dateierstellen();
    system("PAUSE");
    return EXIT_SUCCESS;
}

/*for ( i  = 0 ; i <= random; i++ ) { if (i < random)
{ code für durch die textdatei gehen zeile für zeile }
else { zeile zwischenspeichern bzw. in neue datei schreiben} }
 */
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#include <cstdlib>
#include <iostream>
#include <fstream>
#include <string>
#include <stdio.h>
#include <vector>
#include <string>
#include <fcntl.h>
#include <io.h>
//#include <sys.h>
//#inlcude <stdlib>
using namespace std;

ifstream testdatei;
string names;
vector<string> puffer;
int newtext;




void dateioeffnen ()
{

testdatei.open ("c:\\test.txt", ifstream::in); //variable für die zu öffnende Datei

if (0==testdatei) // sequenz für das öffnen der datei
{
cout << "Fehlerhafte Datein benachrichtigen Sie den Administrator" << endl; //Fehler Benarichtigung
}
else
{
cout << "Datei erfolgreich geoeffnet"<<endl;
}

}

void dateilesen()
{
dateioeffnen();
while(testdatei.good()) { //while schleife liest datei zeile für zeile aus
getline(testdatei, names, ';'); // liest zeilen (zu lesende datei, zu speichernde variable, lese kriterien)
puffer.push_back(names); //ausgelesene datein in vector schreiben
cout << names << endl; // vector ausgabe

}
}



void random () //random funktion zum generien der zu schreibenden zeilen
{
srand (time(NULL));

for (int x=1;x<=10;x++) // festlung der anzahl der zu generienden namen
{
rand()%puffer.size(); // Zahlen berreich festlegung
}
}

void dateierstellen()
{
if((newtext = open ("c:\\newtext.txt", O_WRONLY|O_CREAT)) !-1 ;



}

int main(int argc, char *argv[])
{
dateilesen();
//random();
dateierstellen();
system("PAUSE");
return EXIT_SUCCESS;
}

/*for ( i = 0 ; i <= random; i++ ) { if (i < random)
{ code für durch die textdatei gehen zeile für zeile }
else { zeile zwischenspeichern bzw. in neue datei schreiben} }
*/
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#include <cstdlib>
#include <iostream>
#include <fstream>
#include <string>
#include <stdio.h>
#include <vector>
#include <string>
#include <fcntl.h>
#include <io.h>
//#include <sys.h>
//#inlcude <stdlib>
using namespace std;

ifstream testdatei;
string names;
vector<string> puffer;
int newtext;


 
   
void dateioeffnen ()
{
                                                 
    testdatei.open ("c:\\test.txt", ifstream::in);   //variable für die zu öffnende Datei
   
    if (0==testdatei)                                // sequenz für das öffnen der datei
    {
       cout << "Fehlerhafte Datein benachrichtigen Sie den Administrator" << endl; //Fehler Benarichtigung
    }
    else
    {
        cout << "Datei erfolgreich geoeffnet"<<endl;
    }
   
}

void dateilesen()
{
     dateioeffnen();
    while(testdatei.good()) {            //while schleife liest datei zeile für zeile aus
        getline(testdatei, names, ';');  // liest zeilen (zu lesende datei, zu speichernde variable, lese kriterien)
        puffer.push_back(names);          //ausgelesene datein in vector schreiben
        cout << names << endl;            // vector ausgabe
       
    }
}
     
     

void random ()                            //random funktion zum generien der zu schreibenden zeilen
{
     srand (time(NULL));

for (int x=1;x<=10;x++)                   // festlung der anzahl der zu generienden namen
{
  rand()%puffer.size();                   // Zahlen berreich festlegung
}
}

void dateierstellen()
{
    if((newtext = open ("c:\\newtext.txt", O_WRONLY|O_CREAT)) !-1 ;
   
   

}

int main(int argc, char *argv[])
{
    dateilesen();
    //random();
    dateierstellen();
    system("PAUSE");
    return EXIT_SUCCESS;
}

/*for ( i  = 0 ; i <= random; i++ ) { if (i < random)
{ code für durch die textdatei gehen zeile für zeile }
else { zeile zwischenspeichern bzw. in neue datei schreiben} }
 */


nun habe ich nen problem bei datei erstellen
Code:
void dateierstellen()
{
    if((newtext = open ("c:\\newtext.txt", O_WRONLY|O_CREAT)) !-1 ;
   
   

}
Code:
void dateierstellen()
{
if((newtext = open ("c:\\newtext.txt", O_WRONLY|O_CREAT)) !-1 ;



}
Code:
void dateierstellen()
{
    if((newtext = open ("c:\\newtext.txt", O_WRONLY|O_CREAT)) !-1 ;
   
   

}


wo liegt das problem die fehler meldung ist:

Code:
`)' before '!' token
Code:
`)' before '!' token
Code:
`)' before '!' token


aber ich seh nicht wo ich nen token vergessen ahben könnte seht ihr was was mir net auffält ?
LG
Barti
EOP
Mitglied

Benutzerprofil
Anmeldungsdatum: 15.09.2007
Beiträge: 643
Beitrag EOP Mitglied 11:39:16 05.02.2010   Titel:              Zitieren

Eine öffnende Klammer zu viel - direkt hinter if((...

bzw. eine zu wenig vor ;

Wobei beides wenig Sinn macht.


Zuletzt bearbeitet von EOP am 12:21:34 05.02.2010, insgesamt 1-mal bearbeitet
l'abra d'or
Mitglied

Benutzerprofil
Anmeldungsdatum: 26.12.2009
Beiträge: 1201
Beitrag l'abra d'or Mitglied 11:54:39 05.02.2010   Titel:              Zitieren

Was ist "!-1"?
_matze
Mitglied

Benutzerprofil
Anmeldungsdatum: 31.07.2007
Beiträge: 9275
Beitrag _matze Mitglied 12:06:48 05.02.2010   Titel:              Zitieren

l'abra d'or schrieb:
Was ist "!-1"?


:D

Sollte wahrscheinlich !=-1 oder so werden...

_________________
Wie viele atheistische Babys hat man schon aus Versehen - oder gar mit Absicht! - getauft?
f.-th.
Unregistrierter




Beitrag f.-th. Unregistrierter 23:39:54 05.02.2010   Titel:              Zitieren

Warum die C-Header in überwiegend C++ Quellcode?
Warum Header doppelt?
Warum "dateierstellen()" im C-stil und nicht in C++?

MfG f.-th.
C/C++ Forum :: C++ (auch C++0x und C++11) ::  Warum geht mein Programm nicht :( ?  
Gehen Sie zu Seite 1, 2, 3, 4  Weiter
Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.de ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info, www.c-sar.de, www.c-plusplus.net und www.baeckmann.de enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.