Hall Ihr lieben,
ich habe einen Namensgenerator geschrieben er funktioniert auch wunderbar. Aber leider nur ein mal und dann kann man ihn erst wieder nach einer warte Zeit wieder benutzen. Ich kann mir einfach nicht erklären wo das problem liegt
Ich hoffe ihr könnt mir helfen.
die txt datein sind so aufgebaut:
falss das relevant ist.
Ich sag schon mal danke im voraus
Lg
Barti
ich habe einen Namensgenerator geschrieben er funktioniert auch wunderbar. Aber leider nur ein mal und dann kann man ihn erst wieder nach einer warte Zeit wieder benutzen. Ich kann mir einfach nicht erklären wo das problem liegt
Ich hoffe ihr könnt mir helfen.
Code:
#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;
}
if (geschlechteingabe==2)
{
cout<< " Sie haben das maennliche Geschlecht gewaehlt." << 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 0;
return EXIT_SUCCESS;
}
die txt datein sind so aufgebaut:
Code:
test1;test2;test3;test4;...
Ich sag schon mal danke im voraus
Lg
Barti