Guten Tag liebe Community,
zurzeit schreibe ich gerade an einem Programm, was das Gesetz der großen Zahlen veranschaulichen soll. Es ist eine reine Consolenanwendung und funktioniert auch soweit.
Allerdings soll der ganze Vorgang in einer Textdatei dokumentiert werden, die vom Benutzer beliebig bennannt werden kann. Genau da liegt mein Problem, denn der Dateiname bricht beim Leerschritt ab, obwohl es ein String ist.
Ich poste für den Anfang einfach meine Main.cpp und die Funktion, die den Dateinamen ermitteln soll. Falls noch mehr benötigt wird, bitte einfach sagen
Main.cpp:
Filename.cpp:
Wie bereits erwähnt funktioniert alles außer der Bennennung, sofern der Dateiname einen Leerschritt enthält (Beispiel: Test geht, aber Test me wird fehlerhaft)
Anmerkung:
Sobald beim Dateiname ein Leerschritt erfolgt, wird in der Console auch die Fehlermeldung von der Intro-Funktion ausgegeben, was mich auch wundert, daher poste ich den Code an dieser Stelle:
Intro.cpp
Ich hoffe, dass mir geholfen werden kann und bedanke mich recht herzlich im Voraus!
zurzeit schreibe ich gerade an einem Programm, was das Gesetz der großen Zahlen veranschaulichen soll. Es ist eine reine Consolenanwendung und funktioniert auch soweit.
Allerdings soll der ganze Vorgang in einer Textdatei dokumentiert werden, die vom Benutzer beliebig bennannt werden kann. Genau da liegt mein Problem, denn der Dateiname bricht beim Leerschritt ab, obwohl es ein String ist.
Ich poste für den Anfang einfach meine Main.cpp und die Funktion, die den Dateinamen ermitteln soll. Falls noch mehr benötigt wird, bitte einfach sagen

Main.cpp:
Code:
#include <iostream>
#include "layout_m.h"
#include "layout_c.h"
#include "start.h"
#include "start_c.h"
#include "filename.h"
#include "process.h"
#include "process_c.h"
#include "intro.h"
#include "size_ms.h"
#include "process_ml.h"
#include "process_cl.h"
using namespace std;
int main()
{
while (true)
{
switch (intro())
{
case 0 :
{
if(size_ms()==0)
{
system("CLS");
layout_m();
unsigned long int anzahl=start();
string data_name=filename();
process(anzahl, data_name);
cin.get();
}
else
{
system("CLS");
layout_m();
unsigned long int anzahl=start();
string data_name=filename();
process_ml(anzahl, data_name);
cin.get();
}
break;
}
case 1 :
{
if(size_ms()==0)
{
system("CLS");
layout_c();
unsigned long int anzahl=start_c();
string data_name=filename();
process_c(anzahl, data_name);
cin.get();
}
else
{
system("CLS");
layout_c();
unsigned long int anzahl=start_c();
string data_name=filename();
process_cl(anzahl, data_name);
cin.get();
}
break;
}
}
system("color 07");
system("CLS");
}
return 0;
}
Filename.cpp:
Code:
#include <iostream>
#include <string>
#include "filename.h"
using namespace std;
string filename()
{
string filename;
cout<<"Wie soll die Datei hei\xE1 \ben: ";
getline(cin,filename);
filename+=".ini";
return filename;
}
Wie bereits erwähnt funktioniert alles außer der Bennennung, sofern der Dateiname einen Leerschritt enthält (Beispiel: Test geht, aber Test me wird fehlerhaft)
Anmerkung:
Sobald beim Dateiname ein Leerschritt erfolgt, wird in der Console auch die Fehlermeldung von der Intro-Funktion ausgegeben, was mich auch wundert, daher poste ich den Code an dieser Stelle:
Intro.cpp
Code:
#include <iostream>
#include <limits>
#include "intro.h"
#include "draw_equals.h"
using namespace std;
int intro ()
{
cout<<"\"Das Gesetz der gro\xE1 \ben Zahlen besagt,\ndass sich die relative H\x84 \bufigkeit eines Zufallsergebnisses\nimmer weiter an die rechnerische Wahrscheinlichkeit\nf\x81 \br dieses Ergebnis (Erwartungswert) ann\x84 \bhert,\nje h\x84 \bufiger das Zufallsexperiment durchgef\x81 \bhrt wird.\"\n";
cout<<draw_equals();
unsigned short int choice;
bool check=false;
do
{
cout<<"Bitte w\x84 \bhlen Sie die Versuchsart:\n\n \t\t\t[0]=W\x81 \brfel \t[1]=M\x81 \bnze\n";
cin>>choice;
if (choice>1)
{
cerr<<"Falsche Eingabe22\a\n";
cin.clear();
cin.ignore(numeric_limits<streamsize>::max(),'\n');
}
else
check=true;
}while (check==false);
return choice;
}
Ich hoffe, dass mir geholfen werden kann und bedanke mich recht herzlich im Voraus!