Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.de  
   
Forentreff 2012     
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 :( ?     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 09: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 10: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 11: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 11: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: 9592
Beitrag _matze Mitglied 11: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 12: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: 690
Beitrag EOP Mitglied 12: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 13: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 12:54:39 05.02.2010   Titel:              Zitieren

Was ist "!-1"?
_matze
Mitglied

Benutzerprofil
Anmeldungsdatum: 31.07.2007
Beiträge: 9592
Beitrag _matze Mitglied 13: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 00:39:54 06.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.
Barti20
Mitglied

Benutzerprofil
Anmeldungsdatum: 01.02.2010
Beiträge: 24
Beitrag Barti20 Mitglied 09:19:03 08.02.2010   Titel:              Zitieren

weil ich es net anders kann und wir nix anderes in der berufschule lernen ;)
Mfg
Barti
Barti20
Mitglied

Benutzerprofil
Anmeldungsdatum: 01.02.2010
Beiträge: 24
Beitrag Barti20 Mitglied 10:12:06 09.02.2010   Titel:              Zitieren

Hmm Leute ich komm nicht weiter :( Ich habe es soweit hinbekommen das die datei sich öffnet das die datei gelesen wird und in einen vector geschrieben wird ich lasse zufalls zahlen generieren die in eine variable gepackt werden und auch eine dazu passende csv.datei wird erstellt. Aber ich weiss net wie ich die strings jetzt wieder aus der dem vector raus kriege und in eine csv datei schreibe, könnt ihr mir nen tipp geben wie ich sowas am besten angehe oder wo ich nach lesen kann wie sowas geht.Das ist der momentane 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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
#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;
int anzahl;
int i;
int randomzahlen;
string generate;
 
   
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
{
     cout << "Bitte geben Sie die Anzahl der zu generierenden Namen ein." << endl;
     cin >> anzahl;
     cout << "Die " << anzahl << " Namen werden generiert." << endl;
     srand (time(NULL));

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


}



void dateierstellen()
{
    if(newtext = open ("c:\\generate.csv", O_WRONLY|O_CREAT)) !-1 ;
   
    ifstream LogFile("c:\\generate.csv");
    if(LogFile)
    cout << "Datei wurde erstellt bitte bennen Sie Die Datei um" << endl;

   

}
void generieren()
{
   
    for ( i  = 0 ; i <= randomzahlen; i++ )
    {
        if (i < randomzahlen)
        {
            dateilesen();
        }
            else
            {
                newtext << names;
                cout << newtext << endl;
            }

}
}


int main(int argc, char *argv[])
{
    dateioeffnen();
    dateilesen();
    random();
    dateierstellen();
    generieren();
    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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
#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;
int anzahl;
int i;
int randomzahlen;
string generate;


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
{
cout << "Bitte geben Sie die Anzahl der zu generierenden Namen ein." << endl;
cin >> anzahl;
cout << "Die " << anzahl << " Namen werden generiert." << endl;
srand (time(NULL));

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


}



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

ifstream LogFile("c:\\generate.csv");
if(LogFile)
cout << "Datei wurde erstellt bitte bennen Sie Die Datei um" << endl;



}
void generieren()
{

for ( i = 0 ; i <= randomzahlen; i++ )
{
if (i < randomzahlen)
{
dateilesen();
}
else
{
newtext << names;
cout << newtext << endl;
}

}
}


int main(int argc, char *argv[])
{
dateioeffnen();
dateilesen();
random();
dateierstellen();
generieren();
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
#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;
int anzahl;
int i;
int randomzahlen;
string generate;
 
   
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
{
     cout << "Bitte geben Sie die Anzahl der zu generierenden Namen ein." << endl;
     cin >> anzahl;
     cout << "Die " << anzahl << " Namen werden generiert." << endl;
     srand (time(NULL));

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


}



void dateierstellen()
{
    if(newtext = open ("c:\\generate.csv", O_WRONLY|O_CREAT)) !-1 ;
   
    ifstream LogFile("c:\\generate.csv");
    if(LogFile)
    cout << "Datei wurde erstellt bitte bennen Sie Die Datei um" << endl;

   

}
void generieren()
{
   
    for ( i  = 0 ; i <= randomzahlen; i++ )
    {
        if (i < randomzahlen)
        {
            dateilesen();
        }
            else
            {
                newtext << names;
                cout << newtext << endl;
            }

}
}


int main(int argc, char *argv[])
{
    dateioeffnen();
    dateilesen();
    random();
    dateierstellen();
    generieren();
    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} }
 */
Braunstein
Mitglied

Benutzerprofil
Anmeldungsdatum: 16.05.2002
Beiträge: 6734
Beitrag Braunstein Mitglied 10:53:09 09.02.2010   Titel:              Zitieren

Hallo,

Lies dir bitte auch mal diesen Artikel aus der FAQ durch
Ströme und Dateien in C++


Zuletzt bearbeitet von Braunstein am 10:53:46 09.02.2010, insgesamt 1-mal bearbeitet
Barti20
Mitglied

Benutzerprofil
Anmeldungsdatum: 01.02.2010
Beiträge: 24
Beitrag Barti20 Mitglied 13:41:30 09.02.2010   Titel:              Zitieren

ok ich habe jetzt alles soweit hinbekommen wie es auch funktionieren soll nun habe ich das nächste Problem mit der csv schreiben es funktioniert wunderbar nur ich komme net in die zweite spalte rein.

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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
#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;
ifstream testdatei2;
string names;
string names2;
vector<string> puffer;
vector<string> puffer2;
int newtext;
int anzahl;
int i;
vector<int> randomzahlen;
vector<int> randomzahlen2;
string generate;
 
   
void dateioeffnen ()
{
                                                 
    testdatei.open ("test.txt", ifstream::in);   //variable für die zu öffnende Datei
   
    if (0==testdatei)                                // sequenz für das öffnen der datei
    {
       cout << "Erste Datei Fehlerhaft benachrichtigen Sie den Administrator" << endl; //Fehler Benarichtigung
    }
    else
    {
        cout << "Erste Datei erfolgreich geoeffnet"<<endl;
    }
   
}
void dateioeffnen2 ()
{
    testdatei2.open ("test2.txt", ifstream::in);   //variable für die zu öffnende Datei
   
    if (0==testdatei2)                                // sequenz für das öffnen der datei
    {
       cout << "Zweite Datei Fehlerhafte benachrichtigen Sie den Administrator" << endl; //Fehler Benarichtigung
    }
    else
    {
        cout << "Zweite 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 dateilesen2()
{
     //dateioeffnen();
    while(testdatei2.good()) {            //while schleife liest datei zeile für zeile aus
        getline(testdatei2, names2, ';');  // liest zeilen (zu lesende datei, zu speichernde variable, lese kriterien)
        puffer2.push_back(names2);          //ausgelesene datein in vector schreiben
        //cout << names << endl;
                    // vector ausgabe
       
    }
}
     
     

void random ()                            //random funktion zum generien der zu schreibenden zeilen
{
     cout << "Bitte geben Sie die Anzahl der zu generierenden Namen ein." << endl;
     cin >> anzahl;
     cout << "Die " << anzahl << " Namen werden generiert." << endl;
     srand (time(NULL));

for (int x=0;x<anzahl;x++)                   // festlung der anzahl der zu generienden namen
{
randomzahlen.push_back(rand()%puffer.size()); // Zahlen berreich festlegung
cout << randomzahlen.at(x) << endl;                  
}

for (int i=0;i<anzahl;i++)                   // festlung der anzahl der zu generienden namen
{
randomzahlen2.push_back(rand()%puffer2.size()); // Zahlen berreich festlegung
cout << randomzahlen2.at(i) << endl;                  
}

}



/*void dateierstellen()
{
    if(newtext = open ("c:\\generate.csv", O_WRONLY|O_CREAT)) !-1 ;
   
    ifstream LogFile("c:\\generate.csv");
    if(LogFile)
    cout << "Datei wurde erstellt bitte bennen Sie Die Datei um" << endl;

   

}
*/
void generieren()
{
   
    fstream d;
    d.open("generate.csv", ios::out);
    for ( int x = 0; x < anzahl; x++) d << puffer.at(randomzahlen.at(x)) +  puffer2.at(randomzahlen2.at(x)) ;

    d.close();
}


int main(int argc, char *argv[])
{
    dateioeffnen();
    dateioeffnen2();
    dateilesen();
    dateilesen2();
    random();
    //dateierstellen();
    generieren();
    //for ( int x = 0; x < anzahl; x++) cout << " " << puffer.at(x);
           
    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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
#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;
ifstream testdatei2;
string names;
string names2;
vector<string> puffer;
vector<string> puffer2;
int newtext;
int anzahl;
int i;
vector<int> randomzahlen;
vector<int> randomzahlen2;
string generate;


void dateioeffnen ()
{

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

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

}
void dateioeffnen2 ()
{
testdatei2.open ("test2.txt", ifstream::in); //variable für die zu öffnende Datei

if (0==testdatei2) // sequenz für das öffnen der datei
{
cout << "Zweite Datei Fehlerhafte benachrichtigen Sie den Administrator" << endl; //Fehler Benarichtigung
}
else
{
cout << "Zweite 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 dateilesen2()
{
//dateioeffnen();
while(testdatei2.good()) { //while schleife liest datei zeile für zeile aus
getline(testdatei2, names2, ';'); // liest zeilen (zu lesende datei, zu speichernde variable, lese kriterien)
puffer2.push_back(names2); //ausgelesene datein in vector schreiben
//cout << names << endl;
// vector ausgabe

}
}



void random () //random funktion zum generien der zu schreibenden zeilen
{
cout << "Bitte geben Sie die Anzahl der zu generierenden Namen ein." << endl;
cin >> anzahl;
cout << "Die " << anzahl << " Namen werden generiert." << endl;
srand (time(NULL));

for (int x=0;x<anzahl;x++) // festlung der anzahl der zu generienden namen
{
randomzahlen.push_back(rand()%puffer.size()); // Zahlen berreich festlegung
cout << randomzahlen.at(x) << endl;
}

for (int i=0;i<anzahl;i++) // festlung der anzahl der zu generienden namen
{
randomzahlen2.push_back(rand()%puffer2.size()); // Zahlen berreich festlegung
cout << randomzahlen2.at(i) << endl;
}

}



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

ifstream LogFile("c:\\generate.csv");
if(LogFile)
cout << "Datei wurde erstellt bitte bennen Sie Die Datei um" << endl;



}
*/
void generieren()
{

fstream d;
d.open("generate.csv", ios::out);
for ( int x = 0; x < anzahl; x++) d << puffer.at(randomzahlen.at(x)) + puffer2.at(randomzahlen2.at(x)) ;

d.close();
}


int main(int argc, char *argv[])
{
dateioeffnen();
dateioeffnen2();
dateilesen();
dateilesen2();
random();
//dateierstellen();
generieren();
//for ( int x = 0; x < anzahl; x++) cout << " " << puffer.at(x);

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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
#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;
ifstream testdatei2;
string names;
string names2;
vector<string> puffer;
vector<string> puffer2;
int newtext;
int anzahl;
int i;
vector<int> randomzahlen;
vector<int> randomzahlen2;
string generate;
 
   
void dateioeffnen ()
{
                                                 
    testdatei.open ("test.txt", ifstream::in);   //variable für die zu öffnende Datei
   
    if (0==testdatei)                                // sequenz für das öffnen der datei
    {
       cout << "Erste Datei Fehlerhaft benachrichtigen Sie den Administrator" << endl; //Fehler Benarichtigung
    }
    else
    {
        cout << "Erste Datei erfolgreich geoeffnet"<<endl;
    }
   
}
void dateioeffnen2 ()
{
    testdatei2.open ("test2.txt", ifstream::in);   //variable für die zu öffnende Datei
   
    if (0==testdatei2)                                // sequenz für das öffnen der datei
    {
       cout << "Zweite Datei Fehlerhafte benachrichtigen Sie den Administrator" << endl; //Fehler Benarichtigung
    }
    else
    {
        cout << "Zweite 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 dateilesen2()
{
     //dateioeffnen();
    while(testdatei2.good()) {            //while schleife liest datei zeile für zeile aus
        getline(testdatei2, names2, ';');  // liest zeilen (zu lesende datei, zu speichernde variable, lese kriterien)
        puffer2.push_back(names2);          //ausgelesene datein in vector schreiben
        //cout << names << endl;
                    // vector ausgabe
       
    }
}
     
     

void random ()                            //random funktion zum generien der zu schreibenden zeilen
{
     cout << "Bitte geben Sie die Anzahl der zu generierenden Namen ein." << endl;
     cin >> anzahl;
     cout << "Die " << anzahl << " Namen werden generiert." << endl;
     srand (time(NULL));

for (int x=0;x<anzahl;x++)                   // festlung der anzahl der zu generienden namen
{
randomzahlen.push_back(rand()%puffer.size()); // Zahlen berreich festlegung
cout << randomzahlen.at(x) << endl;                  
}

for (int i=0;i<anzahl;i++)                   // festlung der anzahl der zu generienden namen
{
randomzahlen2.push_back(rand()%puffer2.size()); // Zahlen berreich festlegung
cout << randomzahlen2.at(i) << endl;                  
}

}



/*void dateierstellen()
{
    if(newtext = open ("c:\\generate.csv", O_WRONLY|O_CREAT)) !-1 ;
   
    ifstream LogFile("c:\\generate.csv");
    if(LogFile)
    cout << "Datei wurde erstellt bitte bennen Sie Die Datei um" << endl;

   

}
*/
void generieren()
{
   
    fstream d;
    d.open("generate.csv", ios::out);
    for ( int x = 0; x < anzahl; x++) d << puffer.at(randomzahlen.at(x)) +  puffer2.at(randomzahlen2.at(x)) ;

    d.close();
}


int main(int argc, char *argv[])
{
    dateioeffnen();
    dateioeffnen2();
    dateilesen();
    dateilesen2();
    random();
    //dateierstellen();
    generieren();
    //for ( int x = 0; x < anzahl; x++) cout << " " << puffer.at(x);
           
    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} }
 */


Explizit geht es um diese Code Stelle:

Code:
1
2
3
4
5
6
7
8
9
1
2
3
4
5
6
7
8
9
void generieren()
{
   
    fstream d;
    d.open("generate.csv", ios::out);
    for ( int x = 0; x < anzahl; x++) d << puffer.at(randomzahlen.at(x)) +  puffer2.at(randomzahlen2.at(x)) ;

    d.close();
}
Code:
1
2
3
4
5
6
7
8
9
void generieren()
{

fstream d;
d.open("generate.csv", ios::out);
for ( int x = 0; x < anzahl; x++) d << puffer.at(randomzahlen.at(x)) + puffer2.at(randomzahlen2.at(x)) ;

d.close();
}
Code:
1
2
3
4
5
6
7
8
9
void generieren()
{
   
    fstream d;
    d.open("generate.csv", ios::out);
    for ( int x = 0; x < anzahl; x++) d << puffer.at(randomzahlen.at(x)) +  puffer2.at(randomzahlen2.at(x)) ;

    d.close();
}


puffer 2 soll in der 2ten spalte der csv stehen wie kann man das machen ?
Danke schon mal im v******
Mfg
Barti20
Braunstein
Mitglied

Benutzerprofil
Anmeldungsdatum: 16.05.2002
Beiträge: 6734
Beitrag Braunstein Mitglied 14:27:18 09.02.2010   Titel:              Zitieren

Z.Bsp. so (mit Semikolon separiert)
C/C++ Code:
void generieren()
{
    ofstream d("generate.csv");
    for ( int x = 0; x < anzahl; x++)
        d << puffer.at(randomzahlen.at(x)) << ";" << puffer2.at(randomzahlen2.at(x)) ;
}
C/C++ Code:
void generieren()
{
ofstream d("generate.csv");
for ( int x = 0; x < anzahl; x++)
d << puffer.at(randomzahlen.at(x)) << ";" << puffer2.at(randomzahlen2.at(x)) ;
}
C/C++ Code:
void generieren()
{
    ofstream d("generate.csv");
    for ( int x = 0; x < anzahl; x++)
        d << puffer.at(randomzahlen.at(x)) << ";" << puffer2.at(randomzahlen2.at(x)) ;
}


PS.
voraus schreibt sich nur mit einem r.
Barti20
Mitglied

Benutzerprofil
Anmeldungsdatum: 01.02.2010
Beiträge: 24
Beitrag Barti20 Mitglied 14:37:41 09.02.2010   Titel:              Zitieren

nein geht leider nicht in der csv ist immer noch alles untereinandener
Barti20
Mitglied

Benutzerprofil
Anmeldungsdatum: 01.02.2010
Beiträge: 24
Beitrag Barti20 Mitglied 16:34:07 09.02.2010   Titel:              Zitieren

hmm hat den keiner ne idee woran es liegt habe nun mittlerweile glaube alles verscuht was ich gefunden habe.
f.-th.
Unregistrierter




Beitrag f.-th. Unregistrierter 17:28:27 09.02.2010   Titel:              Zitieren

Bei C++ alles versucht - der ist gut :D


C/C++ Code:
for ( int x = 0; x < anzahl; x++) d << puffer.at(randomzahlen.at(x)) +  puffer2.at(randomzahlen2.at(x)) << endl;
C/C++ Code:
for ( int x = 0; x < anzahl; x++) d << puffer.at(randomzahlen.at(x)) + puffer2.at(randomzahlen2.at(x)) << endl;
C/C++ Code:
for ( int x = 0; x < anzahl; x++) d << puffer.at(randomzahlen.at(x)) +  puffer2.at(randomzahlen2.at(x)) << endl;


Eine andere Möglichkeit ist "test2.txt" entsprechend schreiben.

MfG f.-th.
f.-th.
Unregistrierter




Beitrag f.-th. Unregistrierter 17:34:32 09.02.2010   Titel:              Zitieren

Bin mir jetzt nicht ganz sicher, ob ich das richtig verstanden hab - ist davon abhängig wie du deine "test" Dateien aufgebaut hast -> entweder so wie zuvor oder

endl

aus der Quelle entfernen.

MfG f.-th.
Barti20
Mitglied

Benutzerprofil
Anmeldungsdatum: 01.02.2010
Beiträge: 24
Beitrag Barti20 Mitglied 09:29:44 10.02.2010   Titel:              Zitieren

ha es funzt danke ich musst die zeilen umbrüche im txt entfernen dann gings.
Danke
Barti20
Mitglied

Benutzerprofil
Anmeldungsdatum: 01.02.2010
Beiträge: 24
Beitrag Barti20 Mitglied 13:10:51 10.02.2010   Titel:              Zitieren

*schnief* nun is das Programm fertig aber es ist das nächste Problem wenn ich mehr als 3 namen generieren will dann geht es nicht mehr es ging aber mal habe schon mit 1000 getestet es hat funktioniert. Ich hatte es nun ein bischen Anschaulich gemacht und nun geht es nicht mehr aber ich kann mir nicht erklären warum es nicht geht könnt ihr mir helfen?
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
#include <cstdlib>
#include <iostream>
#include <fstream>
#include <string>
#include <stdio.h>
#include <vector>
#include <string>
#include <fcntl.h>
#include <io.h>
using namespace std;

ifstream testdatei;
ifstream testdatei2;
ifstream testdatei3;
string names;
string names2;
string names3;
vector<string> puffer;
vector<string> puffer2;
vector<string> puffer3;
int newtext;
int anzahl;
int i;
vector<long int> randomzahlen;
vector<long int> randomzahlen2;
vector<long int> randomzahlen3;
string generate;
 
   
void dateioeffnen ()  //weibliche namen öffnene
{
                                                 
    testdatei.open ("wnamen.txt", ifstream::in);   //variable für die zu öffnende Datei
   
    if (0==testdatei)                                // sequenz für das öffnen der datei
    {
       cout << "Erste Datei Fehlerhaft benachrichtigen Sie den Administrator" << endl; //Fehler Benarichtigung
    }
    else
    {
        cout << "Erste Datei erfolgreich geoeffnet"<<endl;
    }
   
}
void dateioeffnen2 ()    //männliche namen öffnen
{
    testdatei2.open ("mnamen.txt", ifstream::in);   //variable für die zu öffnende Datei
   
    if (0==testdatei2)                                // sequenz für das öffnen der datei
    {
       cout << "Zweite Datei Fehlerhafte benachrichtigen Sie den Administrator" << endl; //Fehler Benarichtigung
    }
    else
    {
        cout << "Zweite Datei erfolgreich geoeffnet"<<endl;
    }
}

void dateioeffnen3 () //nachnamen öffnen
{
    testdatei3.open ("nachnamen.txt", ifstream::in);   //variable für die zu öffnende Datei
   
    if (0==testdatei3)                                // sequenz für das öffnen der datei
    {
       cout << "Dritte Datei Fehlerhafte benachrichtigen Sie den Administrator" << endl; //Fehler Benarichtigung
    }
    else
    {
        cout << "Dritte Datei erfolgreich geoeffnet"<<endl;
    }
}
void dateilesen() //weibliche namen lesen
{
     
    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 dateilesen2() //mänliche namen lesen
{
   
    while(testdatei2.good()) {            //while schleife liest datei zeile für zeile aus
        getline(testdatei2, names2, ';');  // liest zeilen (zu lesende datei, zu speichernde variable, lese kriterien)
        puffer2.push_back(names2);          //ausgelesene datein in vector schreiben
        //cout << names << endl;       // vector ausgabe
                   
       
    }
}
   
void dateilesen3() //nachnamen lesen
{
 
    while(testdatei3.good()) {            //while schleife liest datei zeile für zeile aus
        getline(testdatei3, names3, ';');  // liest zeilen (zu lesende datei, zu speichernde variable, lese kriterien)
        puffer3.push_back(names3);          //ausgelesene datein in vector schreiben
        //cout << names << endl;    // vector ausgabe
                     
       
    }
}  
     

void random ()                            //random funktion zum generien der zu schreibenden zeilen
{
     cout << "Bitte geben Sie die Anzahl der zu generierenden Namen ein." << endl;
     cin >> anzahl;
     cout << "Die " << anzahl << " Namen werden generiert." << endl;
     srand (time(NULL));

//randomzeile für weibliche namen
for (int x=0;x<anzahl;x++)                   // festlung der anzahl der zu generienden namen
{
randomzahlen.push_back(rand()%puffer.size()); // Zahlen berreich festlegung
//cout << randomzahlen.at(x) << endl;                  
}

//randomzeile für männliche namen
for (int i=0;i<anzahl;i++)                   // festlung der anzahl der zu generienden namen
{
randomzahlen2.push_back(rand()%puffer2.size()); // Zahlen berreich festlegung
//cout << randomzahlen2.at(i) << endl;                  
}

//randomzeile für nachnamen
for (int k=0;k<anzahl;k++)                   // festlung der anzahl der zu generienden namen
{
randomzahlen3.push_back(rand()%puffer3.size()); // Zahlen berreich festlegung
//cout << randomzahlen2.at(i) << endl;                  
}

}


void weiblichgenerieren() //weiblich namen generieren
{
   
    fstream d; //stream "intetger"
    d.open("generate.csv", ios::out); //zu schreibende datei
   for ( int x = 0; x < anzahl; x++) d << puffer.at(randomzahlen.at(x)) << ";" << puffer3.at(randomzahlen3.at(x))<<endl;// zufallszeilen auslesen und in datei schreiben

    d.close(); //datei stream schließen
    ifstream LogFile("c:\\generate.csv");//überprüfen ob datei erstellt wurde
    if(LogFile)
    cout << "Die Datei wurde erstellt bitte bennen Sie Die Datei um" << endl;
}

void maennlichgenerieren()
{
   
    fstream d;
    d.open("generate.csv", ios::out);
   for ( int x = 0; x < anzahl; x++) d << puffer.at(randomzahlen2.at(x)) << ";" << puffer3.at(randomzahlen3.at(x))<<endl;

    d.close();
    ifstream LogFile("c:\\generate.csv");
    if(LogFile)
    cout << "Die Datei wurde erstellt bitte bennen Sie Die Datei um" << endl;
}

int main(int argc, char *argv[])
{
cout << "~~~~~~~~Herzlich Willkommen beim Namensgenerator~~~~~~~~" << endl << endl;

cout << "Bitte waehlen Sie aus, welches Geschlecht sie generieren moechten." << endl<< endl;
anfang:;
cout << "Geben sie fuer Weiblich eine 1 ein oder fuer Maennlich eine 2." << endl;
int geschlechteingabe;
cout << "Bitte geben sie das gewuenschte Geschlecht an: " ;
cin >> geschlechteingabe;
cout << endl;

if(geschlechteingabe < 1)
{
 cout << "!!!!!!!!ACHTUNG!!!!!!!!!"<<endl<<endl;
 cout << "Sie haben eine falsche Eingabe gemacht bitte versuchen sie es noch einmal." << endl<<endl;
 goto anfang;
}
 else
 {
      if (geschlechteingabe > 2)
      {
       cout << "!!!!!!!!ACHTUNG!!!!!!!!!"<<endl<<endl;
       cout << "Sie haben eine falsche Eingabe gemacht bitte versuchen sie es noch einmal." << endl<<endl;
       goto anfang;
       }
                           
    else
    {
    if (geschlechteingabe=2)
        {
            cout<< " Sie haben das maennliche Geschlecht gewählt." << endl <<endl;
            dateioeffnen();
            dateioeffnen2();
            dateioeffnen3();
            dateilesen();
            dateilesen2();
            dateilesen3();
            random();
            maennlichgenerieren();
        }
        else
        {
            if (geschlechteingabe=1)
            {
                cout<< " Sie haben das weibliche Geschlecht gewählt." << endl <<endl;
                dateioeffnen();
                dateioeffnen2();
                dateioeffnen3();
                dateilesen();
                dateilesen2();
                dateilesen3();
                random();
                weiblichgenerieren();
                }
        }
    }
}
   
           
    system("PAUSE");
    return EXIT_SUCCESS;
}
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
#include <cstdlib>
#include <iostream>
#include <fstream>
#include <string>
#include <stdio.h>
#include <vector>
#include <string>
#include <fcntl.h>
#include <io.h>
using namespace std;

ifstream testdatei;
ifstream testdatei2;
ifstream testdatei3;
string names;
string names2;
string names3;
vector<string> puffer;
vector<string> puffer2;
vector<string> puffer3;
int newtext;
int anzahl;
int i;
vector<long int> randomzahlen;
vector<long int> randomzahlen2;
vector<long int> randomzahlen3;
string generate;


void dateioeffnen () //weibliche namen öffnene
{

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

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

}
void dateioeffnen2 () //männliche namen öffnen
{
testdatei2.open ("mnamen.txt", ifstream::in); //variable für die zu öffnende Datei

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

void dateioeffnen3 () //nachnamen öffnen
{
testdatei3.open ("nachnamen.txt", ifstream::in); //variable für die zu öffnende Datei

if (0==testdatei3) // sequenz für das öffnen der datei
{
cout << "Dritte Datei Fehlerhafte benachrichtigen Sie den Administrator" << endl; //Fehler Benarichtigung
}
else
{
cout << "Dritte Datei erfolgreich geoeffnet"<<endl;
}
}
void dateilesen() //weibliche namen lesen
{

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 dateilesen2() //mänliche namen lesen
{

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


}
}

void dateilesen3() //nachnamen lesen
{

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


}
}


void random () //random funktion zum generien der zu schreibenden zeilen
{
cout << "Bitte geben Sie die Anzahl der zu generierenden Namen ein." << endl;
cin >> anzahl;
cout << "Die " << anzahl << " Namen werden generiert." << endl;
srand (time(NULL));

//randomzeile für weibliche namen
for (int x=0;x<anzahl;x++) // festlung der anzahl der zu generienden namen
{
randomzahlen.push_back(rand()%puffer.size()); // Zahlen berreich festlegung
//cout << randomzahlen.at(x) << endl;
}

//randomzeile für männliche namen
for (int i=0;i<anzahl;i++) // festlung der anzahl der zu generienden namen
{
randomzahlen2.push_back(rand()%puffer2.size()); // Zahlen berreich festlegung
//cout << randomzahlen2.at(i) << endl;
}

//randomzeile für nachnamen
for (int k=0;k<anzahl;k++) // festlung der anzahl der zu generienden namen
{
randomzahlen3.push_back(rand()%puffer3.size()); // Zahlen berreich festlegung
//cout << randomzahlen2.at(i) << endl;
}

}


void weiblichgenerieren() //weiblich namen generieren
{

fstream d; //stream "intetger"
d.open("generate.csv", ios::out); //zu schreibende datei
for ( int x = 0; x < anzahl; x++) d << puffer.at(randomzahlen.at(x)) << ";" << puffer3.at(randomzahlen3.at(x))<<endl;// zufallszeilen auslesen und in datei schreiben

d.close(); //datei stream schließen
ifstream LogFile("c:\\generate.csv");//überprüfen ob datei erstellt wurde
if(LogFile)
cout << "Die Datei wurde erstellt bitte bennen Sie Die Datei um" << endl;
}

void maennlichgenerieren()
{

fstream d;
d.open("generate.csv", ios::out);
for ( int x = 0; x < anzahl; x++) d << puffer.at(randomzahlen2.at(x)) << ";" << puffer3.at(randomzahlen3.at(x))<<endl;

d.close();
ifstream LogFile("c:\\generate.csv");
if(LogFile)
cout << "Die Datei wurde erstellt bitte bennen Sie Die Datei um" << endl;
}

int main(int argc, char *argv[])
{
cout << "~~~~~~~~Herzlich Willkommen beim Namensgenerator~~~~~~~~" << endl << endl;

cout << "Bitte waehlen Sie aus, welches Geschlecht sie generieren moechten." << endl<< endl;
anfang:;
cout << "Geben sie fuer Weiblich eine 1 ein oder fuer Maennlich eine 2." << endl;
int geschlechteingabe;
cout << "Bitte geben sie das gewuenschte Geschlecht an: " ;
cin >> geschlechteingabe;
cout << endl;

if(geschlechteingabe < 1)
{
cout << "!!!!!!!!ACHTUNG!!!!!!!!!"<<endl<<endl;
cout << "Sie haben eine falsche Eingabe gemacht bitte versuchen sie es noch einmal." << endl<<endl;
goto anfang;
}
else
{
if (geschlechteingabe > 2)
{
cout << "!!!!!!!!ACHTUNG!!!!!!!!!"<<endl<<endl;
cout << "Sie haben eine falsche Eingabe gemacht bitte versuchen sie es noch einmal." << endl<<endl;
goto anfang;
}

else
{
if (geschlechteingabe=2)
{
cout<< " Sie haben das maennliche Geschlecht gewählt." << endl <<endl;
dateioeffnen();
dateioeffnen2();
dateioeffnen3();
dateilesen();
dateilesen2();
dateilesen3();
random();
maennlichgenerieren();
}
else
{
if (geschlechteingabe=1)
{
cout<< " Sie haben das weibliche Geschlecht gewählt." << endl <<endl;
dateioeffnen();
dateioeffnen2();
dateioeffnen3();
dateilesen();
dateilesen2();
dateilesen3();
random();
weiblichgenerieren();
}
}
}
}


system("PAUSE");
return EXIT_SUCCESS;
}
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
#include <cstdlib>
#include <iostream>
#include <fstream>
#include <string>
#include <stdio.h>
#include <vector>
#include <string>
#include <fcntl.h>
#include <io.h>
using namespace std;

ifstream testdatei;
ifstream testdatei2;
ifstream testdatei3;
string names;
string names2;
string names3;
vector<string> puffer;
vector<string> puffer2;
vector<string> puffer3;
int newtext;
int anzahl;
int i;
vector<long int> randomzahlen;
vector<long int> randomzahlen2;
vector<long int> randomzahlen3;
string generate;
 
   
void dateioeffnen ()  //weibliche namen öffnene
{
                                                 
    testdatei.open ("wnamen.txt", ifstream::in);   //variable für die zu öffnende Datei
   
    if (0==testdatei)                                // sequenz für das öffnen der datei
    {
       cout << "Erste Datei Fehlerhaft benachrichtigen Sie den Administrator" << endl; //Fehler Benarichtigung
    }
    else
    {
        cout << "Erste Datei erfolgreich geoeffnet"<<endl;
    }
   
}
void dateioeffnen2 ()    //männliche namen öffnen
{
    testdatei2.open ("mnamen.txt", ifstream::in);   //variable für die zu öffnende Datei
   
    if (0==testdatei2)                                // sequenz für das öffnen der datei
    {
       cout << "Zweite Datei Fehlerhafte benachrichtigen Sie den Administrator" << endl; //Fehler Benarichtigung
    }
    else
    {
        cout << "Zweite Datei erfolgreich geoeffnet"<<endl;
    }
}

void dateioeffnen3 () //nachnamen öffnen
{
    testdatei3.open ("nachnamen.txt", ifstream::in);   //variable für die zu öffnende Datei
   
    if (0==testdatei3)                                // sequenz für das öffnen der datei
    {
       cout << "Dritte Datei Fehlerhafte benachrichtigen Sie den Administrator" << endl; //Fehler Benarichtigung
    }
    else
    {
        cout << "Dritte Datei erfolgreich geoeffnet"<<endl;
    }
}
void dateilesen() //weibliche namen lesen
{
     
    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 dateilesen2() //mänliche namen lesen
{
   
    while(testdatei2.good()) {            //while schleife liest datei zeile für zeile aus
        getline(testdatei2, names2, ';');  // liest zeilen (zu lesende datei, zu speichernde variable, lese kriterien)
        puffer2.push_back(names2);          //ausgelesene datein in vector schreiben
        //cout << names << endl;       // vector ausgabe
                   
       
    }
}
   
void dateilesen3() //nachnamen lesen
{
 
    while(testdatei3.good()) {            //while schleife liest datei zeile für zeile aus
        getline(testdatei3, names3, ';');  // liest zeilen (zu lesende datei, zu speichernde variable, lese kriterien)
        puffer3.push_back(names3);          //ausgelesene datein in vector schreiben
        //cout << names << endl;    // vector ausgabe
                     
       
    }
}  
     

void random ()                            //random funktion zum generien der zu schreibenden zeilen
{
     cout << "Bitte geben Sie die Anzahl der zu generierenden Namen ein." << endl;
     cin >> anzahl;
     cout << "Die " << anzahl << " Namen werden generiert." << endl;
     srand (time(NULL));

//randomzeile für weibliche namen
for (int x=0;x<anzahl;x++)                   // festlung der anzahl der zu generienden namen
{
randomzahlen.push_back(rand()%puffer.size()); // Zahlen berreich festlegung
//cout << randomzahlen.at(x) << endl;                  
}

//randomzeile für männliche namen
for (int i=0;i<anzahl;i++)                   // festlung der anzahl der zu generienden namen
{
randomzahlen2.push_back(rand()%puffer2.size()); // Zahlen berreich festlegung
//cout << randomzahlen2.at(i) << endl;                  
}

//randomzeile für nachnamen
for (int k=0;k<anzahl;k++)                   // festlung der anzahl der zu generienden namen
{
randomzahlen3.push_back(rand()%puffer3.size()); // Zahlen berreich festlegung
//cout << randomzahlen2.at(i) << endl;                  
}

}


void weiblichgenerieren() //weiblich namen generieren
{
   
    fstream d; //stream "intetger"
    d.open("generate.csv", ios::out); //zu schreibende datei
   for ( int x = 0; x < anzahl; x++) d << puffer.at(randomzahlen.at(x)) << ";" << puffer3.at(randomzahlen3.at(x))<<endl;// zufallszeilen auslesen und in datei schreiben

    d.close(); //datei stream schließen
    ifstream LogFile("c:\\generate.csv");//überprüfen ob datei erstellt wurde
    if(LogFile)
    cout << "Die Datei wurde erstellt bitte bennen Sie Die Datei um" << endl;
}

void maennlichgenerieren()
{
   
    fstream d;
    d.open("generate.csv", ios::out);
   for ( int x = 0; x < anzahl; x++) d << puffer.at(randomzahlen2.at(x)) << ";" << puffer3.at(randomzahlen3.at(x))<<endl;

    d.close();
    ifstream LogFile("c:\\generate.csv");
    if(LogFile)
    cout << "Die Datei wurde erstellt bitte bennen Sie Die Datei um" << endl;
}

int main(int argc, char *argv[])
{
cout << "~~~~~~~~Herzlich Willkommen beim Namensgenerator~~~~~~~~" << endl << endl;

cout << "Bitte waehlen Sie aus, welches Geschlecht sie generieren moechten." << endl<< endl;
anfang:;
cout << "Geben sie fuer Weiblich eine 1 ein oder fuer Maennlich eine 2." << endl;
int geschlechteingabe;
cout << "Bitte geben sie das gewuenschte Geschlecht an: " ;
cin >> geschlechteingabe;
cout << endl;

if(geschlechteingabe < 1)
{
 cout << "!!!!!!!!ACHTUNG!!!!!!!!!"<<endl<<endl;
 cout << "Sie haben eine falsche Eingabe gemacht bitte versuchen sie es noch einmal." << endl<<endl;
 goto anfang;
}
 else
 {
      if (geschlechteingabe > 2)
      {
       cout << "!!!!!!!!ACHTUNG!!!!!!!!!"<<endl<<endl;
       cout << "Sie haben eine falsche Eingabe gemacht bitte versuchen sie es noch einmal." << endl<<endl;
       goto anfang;
       }
                           
    else
    {
    if (geschlechteingabe=2)
        {
            cout<< " Sie haben das maennliche Geschlecht gewählt." << endl <<endl;
            dateioeffnen();
            dateioeffnen2();
            dateioeffnen3();
            dateilesen();
            dateilesen2();
            dateilesen3();
            random();
            maennlichgenerieren();
        }
        else
        {
            if (geschlechteingabe=1)
            {
                cout<< " Sie haben das weibliche Geschlecht gewählt." << endl <<endl;
                dateioeffnen();
                dateioeffnen2();
                dateioeffnen3();
                dateilesen();
                dateilesen2();
                dateilesen3();
                random();
                weiblichgenerieren();
                }
        }
    }
}
   
           
    system("PAUSE");
    return EXIT_SUCCESS;
}


und das kommt dabei raus :

http://www.bilder-hochladen.net/files/a72x-j-jpg.html

Schon mal ein ganz dickes dann voraus.
Mfg
Barti
SeppJ
Moderator

Benutzerprofil
Anmeldungsdatum: 10.06.2008
Beiträge: 13576
Beitrag SeppJ Moderator 14:26:07 10.02.2010   Titel:              Zitieren

Das klingt doch nach einem idealen Problemfall um damit zu lernen, wie man einen Debugger benutzt. Damit sollte sich das Problem statt mit 1000 mal testen mit einmal testen lösen lassen. Ist dann auch ein sehr nützliches Wissen für zukünftige, komplexere Projekte.
Barti20
Mitglied

Benutzerprofil
Anmeldungsdatum: 01.02.2010
Beiträge: 24
Beitrag Barti20 Mitglied 14:35:11 10.02.2010   Titel:              Zitieren

ich weiss nicht wie das mit debuggen geht ... bzw was man dazu benutzt
_matze
Mitglied

Benutzerprofil
Anmeldungsdatum: 31.07.2007
Beiträge: 9592
Beitrag _matze Mitglied 14:44:11 10.02.2010   Titel:              Zitieren

Barti20 schrieb:
ich weiss nicht wie das mit debuggen geht ... bzw was man dazu benutzt


Hier kannst du dich schön einlesen in die Welt des Debuggings:

http://magazin.c-plusplus.de/artikel/Debuggen%20mit%20VCPlusPlus6

Bezieht sich zwar auf VS6, aber an den Debugging-Mechanismen hat sich wenig geändert.

_________________
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 15:16:25 10.02.2010   Titel:              Zitieren

hmm da is nix bei raus gekommen er meint es is alles richtig und nun ?
_matze
Mitglied

Benutzerprofil
Anmeldungsdatum: 31.07.2007
Beiträge: 9592
Beitrag _matze Mitglied 15:20:50 10.02.2010   Titel:              Zitieren

Barti20 schrieb:
hmm da is nix bei raus gekommen er meint es is alles richtig und nun ?


Wie meinst du das? Was genau hast du denn jetzt ausprobiert?

_________________
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 15:34:06 10.02.2010   Titel:              Zitieren

ich habe mit dem debugger ding von dev c++ jede zeile einzeln überprüft aber er hat mir nirgends gesagt das da irgendwo nen fehler is ich habe nun auch einmal die zeilen auskommentiert wo ich mir gedacht habe das es daran liegen könnte aber es passiert das gleich ...
MFK
Mitglied

Benutzerprofil
Anmeldungsdatum: 02.11.2002
Beiträge: 5262
Beitrag MFK Mitglied 15:36:06 10.02.2010   Titel:              Zitieren

Barti20 schrieb:
ich habe mit dem debugger ding von dev c++ jede zeile einzeln überprüft aber er hat mir nirgends gesagt das da irgendwo nen fehler is

Die Fehlerprüfung musst du schon selbst machen. Der Debugger sorgt nur dafür, dass du in Einzelschritten durch dein Programm gehen und dir die Variablenwerte ansehen kannst. Das Denken übernimmt er nicht für dich.

_________________
"Funktioniert nicht" ist keine ausreichende Fehlerbeschreibung.
_matze
Mitglied

Benutzerprofil
Anmeldungsdatum: 31.07.2007
Beiträge: 9592
Beitrag _matze Mitglied 15:50:22 10.02.2010   Titel:              Zitieren

Wikipedia bringt es auf den Punkt:

Wikipedia schrieb:

Funktionen eines Debuggers:

* die Steuerung des Programmablaufs, insbesondere durch Haltepunkte und die Einzelschritt-Verarbeitung von Befehlen
* das Inspizieren von Daten, z. B. die Register, den aktuellen Programmcode als Assembler oder Hochsprachenquelltext, den allgemeinen Daten in festen und flüchtigen Speichern, der Erzeugung von fortgeschrittenen Daten-Interpretationen etwa durch eine Callstack-Funktionalität oder das Anzeigen von Ein-/Ausgabe-Registern, Tabellen und Hochsprachen-Strukturen
* das Modifizieren von Speichern, z. B. des Hauptspeichers, der externen Ein-/Ausgabe-Zustände und der Register des Prozessorkerns


http://de.wikipedia.org/wiki/Debugger

_________________
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 15:52:27 11.02.2010   Titel:              Zitieren

hmm ok ich habs hin bekommen geht alles nun habe ich schon wieder ein problem...
Ich glaube langsam werde ich für euch lästig...
Hatte ja oben die geschlechts Abfrage mit 1 oder 2 abgefragt sollte da jetzt ein buchstabe eingegeben werden verfällt das programm in eine endlisch schleife ich habe das problem jetzt so gelöst :
Code:
if(geschlechteingabe[1] != "w"||"m")
{
                     
 cout << "!!!!!!!!ACHTUNG!!!!!!!!!"<<endl<<endl;
 cout << "Sie haben eine falsche Eingabe gemacht, bitte versuchen sie es noch einmal." << endl<<endl;
 goto anfang; // goto marke setzen
}
Code:
if(geschlechteingabe[1] != "w"||"m")
{

cout << "!!!!!!!!ACHTUNG!!!!!!!!!"<<endl<<endl;
cout << "Sie haben eine falsche Eingabe gemacht, bitte versuchen sie es noch einmal." << endl<<endl;
goto anfang; // goto marke setzen
}
Code:
if(geschlechteingabe[1] != "w"||"m")
{
                     
 cout << "!!!!!!!!ACHTUNG!!!!!!!!!"<<endl<<endl;
 cout << "Sie haben eine falsche Eingabe gemacht, bitte versuchen sie es noch einmal." << endl<<endl;
 goto anfang; // goto marke setzen
}


geschlechtseingabe ist nen array...
also so habe ich ihn gemacht :
Code:
string geschlechteingabe [10];
Code:
string geschlechteingabe [10];
Code:
string geschlechteingabe [10];


aber jetzt ist das Problem auch wenn ich w oder m eingebe verlässt er nicht die if funktion.

Woran kann das liegen?
_matze
Mitglied

Benutzerprofil
Anmeldungsdatum: 31.07.2007
Beiträge: 9592
Beitrag _matze Mitglied 16:04:04 11.02.2010   Titel:              Zitieren

Barti20 schrieb:

Code:
if(geschlechteingabe[1] != "w"||"m")
Code:
if(geschlechteingabe[1] != "w"||"m")
Code:
if(geschlechteingabe[1] != "w"||"m")



Das geht so nicht (so eine Sprache ist eine Programmiersprache nicht ;) ). Du musst folgendermaßen notieren:

C/C++ Code:
if(geschlechteingabe[1] != "w" && geschlechteingabe[1] != "m")
C/C++ Code:
if(geschlechteingabe[1] != "w" && geschlechteingabe[1] != "m")
C/C++ Code:
if(geschlechteingabe[1] != "w" && geschlechteingabe[1] != "m")


Und von goto würde ich dir abraten. Mach es lieber mit einer vernünftigen Schleife (mache... solange die Eingabe nicht "w" oder "m" ist => also eine do-while-Schleife).

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


Zuletzt bearbeitet von _matze am 16:04:35 11.02.2010, insgesamt 1-mal bearbeitet
Barti20
Mitglied

Benutzerprofil
Anmeldungsdatum: 01.02.2010
Beiträge: 24
Beitrag Barti20 Mitglied 16:23:53 11.02.2010   Titel:              Zitieren

ok danke :) habs jetzt ach mit einer while do schleife gemacht :)
Barti20
Mitglied

Benutzerprofil
Anmeldungsdatum: 01.02.2010
Beiträge: 24
Beitrag Barti20 Mitglied 17:10:29 11.02.2010   Titel:              Zitieren

Wie kann ich verhindern wenn in einen Integer buchstaben eingegeben werden, dass das Programm in eine Endlosschleife springt ?
Sonder statdessen eine Fehler meldung kommt?
Wie muss ich daran gehen?
Also Problem ist wenn man bei mir im Programm bei Anzahl einen Buchstaben eingibt dann wird die Fehler meldung von der If Funktion ausgegeben und das ganze in einer Endlosschleife.
Die Variable anzahl ist ein Integer.
So siehts aus:
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
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
void random ()                            //random funktion zum generien der zu schreibenden zeilen
{
     anfang:;
     cout << "Bitte geben Sie die Anzahl der zu generierenden Namen ein." << endl;
     cout << "Anzahl: ";
     cin >> anzahl;
     
     if(anzahl<=0)
     {
     cout << endl;
     cout << "_______________________________________________________________________________" <<endl << endl;
     cout << "!!!!!!!!!!FEHLER!!!!!!!!!!!!!!!" << endl << endl;
     cout<< "Die eingegebene Anzahl liegt unter 0 bitte Versuchen Sie es noch einmal."<<endl <<endl;
     cout << "_______________________________________________________________________________" <<endl << endl;
     goto anfang;
     }
     cout << "Die " << anzahl << " Namen werden generiert." << endl;
     srand (time(NULL));

//randomzeile für weibliche namen
for (int x=0;x<anzahl;x++)                   // festlung der anzahl der zu generienden namen
{
randomzahlen.push_back(rand()%puffer.size()); // Zahlen berreich festlegung
//cout << randomzahlen.at(x) << endl;                  
}
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
void random () //random funktion zum generien der zu schreibenden zeilen
{
anfang:;
cout << "Bitte geben Sie die Anzahl der zu generierenden Namen ein." << endl;
cout << "Anzahl: ";
cin >> anzahl;

if(anzahl<=0)
{
cout << endl;
cout << "_______________________________________________________________________________" <<endl << endl;
cout << "!!!!!!!!!!FEHLER!!!!!!!!!!!!!!!" << endl << endl;
cout<< "Die eingegebene Anzahl liegt unter 0 bitte Versuchen Sie es noch einmal."<<endl <<endl;
cout << "_______________________________________________________________________________" <<endl << endl;
goto anfang;
}
cout << "Die " << anzahl << " Namen werden generiert." << endl;
srand (time(NULL));

//randomzeile für weibliche namen
for (int x=0;x<anzahl;x++) // festlung der anzahl der zu generienden namen
{
randomzahlen.push_back(rand()%puffer.size()); // Zahlen berreich festlegung
//cout << randomzahlen.at(x) << endl;
}
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
void random ()                            //random funktion zum generien der zu schreibenden zeilen
{
     anfang:;
     cout << "Bitte geben Sie die Anzahl der zu generierenden Namen ein." << endl;
     cout << "Anzahl: ";
     cin >> anzahl;
     
     if(anzahl<=0)
     {
     cout << endl;
     cout << "_______________________________________________________________________________" <<endl << endl;
     cout << "!!!!!!!!!!FEHLER!!!!!!!!!!!!!!!" << endl << endl;
     cout<< "Die eingegebene Anzahl liegt unter 0 bitte Versuchen Sie es noch einmal."<<endl <<endl;
     cout << "_______________________________________________________________________________" <<endl << endl;
     goto anfang;
     }
     cout << "Die " << anzahl << " Namen werden generiert." << endl;
     srand (time(NULL));

//randomzeile für weibliche namen
for (int x=0;x<anzahl;x++)                   // festlung der anzahl der zu generienden namen
{
randomzahlen.push_back(rand()%puffer.size()); // Zahlen berreich festlegung
//cout << randomzahlen.at(x) << endl;                  
}


und ja ich weiß goto Befehle sind net gut :) Das wird auch noch geändert wenn der rest funktioniert :)
Schon mal ein Danke im Voraus


Zuletzt bearbeitet von Barti20 am 17:12:10 11.02.2010, insgesamt 1-mal bearbeitet
_matze
Mitglied

Benutzerprofil
Anmeldungsdatum: 31.07.2007
Beiträge: 9592
Beitrag _matze Mitglied 17:13:28 11.02.2010   Titel:              Zitieren

Barti20 schrieb:
Wie kann ich verhindern wenn in einen Integer buchstaben eingegeben werden, dass das Programm in eine Endlosschleife springt ?


Du musst den Eingabepuffer löschen (=>Suchfunktion).

_________________
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 17:26:12 11.02.2010   Titel:              Zitieren

hmm das klappt nicht bleibt das gleich weder mit
cin.clear();
noch
cin.ignore(cin.rdbuf()->in_avail());
hat mein problem gelöst. :(
_matze
Mitglied

Benutzerprofil
Anmeldungsdatum: 31.07.2007
Beiträge: 9592
Beitrag _matze Mitglied 17:42:32 11.02.2010   Titel:              Zitieren

Probier's mal so:

C/C++ Code:
std::cin.clear();
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
C/C++ Code:
std::cin.clear();
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
C/C++ Code:
std::cin.clear();
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');

_________________
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 17:45:47 11.02.2010   Titel:              Zitieren

ahh super es geht.
Aber was genau machen die beiden zeilen ?
Würd schon gern wissen wie mein Programm funktioniert :P
_matze
Mitglied

Benutzerprofil
Anmeldungsdatum: 31.07.2007
Beiträge: 9592
Beitrag _matze Mitglied 18:25:10 11.02.2010   Titel:              Zitieren

Barti20 schrieb:
ahh super es geht.
Aber was genau machen die beiden zeilen ?
Würd schon gern wissen wie mein Programm funktioniert :P


Hier findest du alle Antworten: http://www.cppreference.com/wiki/io/start?s[]=cin&s[]=clear

_________________
Wie viele atheistische Babys hat man schon aus Versehen - oder gar mit Absicht! - getauft?
C/C++ Forum :: C++ (auch C++0x und C++11) ::  Warum geht mein Programm nicht :( ?   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.