textdokument erstellen und bearbeiten in C++
-
Ich habe folgendes Problem:
Ich möchte eine bestenliste für ein spiel(welches in c++ von mir geschrieben ist) ausgeben können. Zuerst sollte das programm nachsehen, ob schon ein Textdokument vorhanden ist, dann soll es ein neues erstellen wenn nicht vorhanden und wenn doch sollte das Programm dieses dokument bearbeiten (nach der Punktezahl umsortieren und einen neuen eintrag erstellen können) und danach das dokument wieder abspeichernich hoffe irgentwer hatt dazu eine idee denn ich habe KEINE
danke schon mal im vorhinein
-
zum Dateien Lesen/Schreiben:
http://www.cplusplus.com/reference/iostream/
-
BigNeal schrieb:
zum Dateien Lesen/Schreiben:
http://www.cplusplus.com/reference/iostream/Genauer wird dafür doch
fstream
gebraucht oder?
http://www.cplusplus.com/reference/iostream/fstream/
-
funktioniert das nicht mit :
fopen ("Versuch.txt","w");
oder soo?
-
tuni schrieb:
funktioniert das nicht mit :
fopen ("Versuch.txt","w");
oder soo?
Das ist C und kein C++...
Ich find es lustig dass du nen Link samt info (fstream) bekommst, das ignorierst und dann C Code präsentierst
-
Lies selbst!
http://www.cplusplus.com/reference/clibrary/cstdio/fopen/Ach ja... schön abgeguckt
C++ Reference schrieb:
/* fopen example */
#include <stdio.h>
int main ()
{
FILE * pFile;
pFile = fopen ("myfile.txt","w");
if (pFile!=NULL)
{
fputs ("fopen example",pFile);
fclose (pFile);
}
return 0;
}Also, im Grunde geht dies.
Ach ja, dies ist kein C++! Natürlich kann man es benutzen, doch
fstream
ist besser.
-
sorry aber ich kenn mich halt wirklich nicht sehr gut aus
-
tuni schrieb:
sorry aber ich kenn mich halt wirklich nicht sehr gut aus
Das wird, wenn du weiter am Ball bleibst mit der Zeit kommen. Ich zum Beispiel lerne auch erst seit ca. 1-2 Monaten C++ und kann meines Erachtens schon relativ viel
-
kann mir wer sagen warum mein kompiler immer ein 'include<*****.h> bruacht und using namespce std: nicht kennt? ist das weil er uralt ist????
-
Entweder ist der Compiler uralt oder aber du hast dir einen nativen C-Compiler runtergeladen.
Wenn ich dir Compiler vorstellen darf, dann wären es diese hier:
Beide sind gut, und Code::Blocks kannst du auch auf Linux benutzen, wohingegen VC++ Plattform spezifisch ist(MS).
-
Code::Blocks ist gar kein Compiler und auf so gut wie jedem aktuellen Linux ist ein aktueller C++ Compiler dabei (den man mit Code::Blocks benutzen kann)
-
brotbernd schrieb:
Code::Blocks ist gar kein Compiler und auf so gut wie jedem aktuellen Linux ist ein aktueller C++ Compiler dabei (den man mit Code::Blocks benutzen kann)
Uh... hmm nja bei mir funktioniert es, weil ich schon dutzende Compiler installiert hatte
Es wäre hilfreich zu wissen, mit was für einem System der Fragensteller programmiert.
-
Walnut_Burl schrieb:
brotbernd schrieb:
Code::Blocks ist gar kein Compiler und auf so gut wie jedem aktuellen Linux ist ein aktueller C++ Compiler dabei (den man mit Code::Blocks benutzen kann)
Uh... hmm nja bei mir funktioniert es, weil ich schon dutzende Compiler installiert hatte
Es wäre hilfreich zu wissen, mit was für einem System der Fragensteller programmiert.
Nur um das klarzustellen, es handelt sich um eine IDE (mit integriertem Compiler).
-
Walnut_Burl schrieb:
tuni schrieb:
sorry aber ich kenn mich halt wirklich nicht sehr gut aus
Das wird, wenn du weiter am Ball bleibst mit der Zeit kommen. Ich zum Beispiel lerne auch erst seit ca. 1-2 Monaten C++ und kann meines Erachtens schon relativ viel
1 Jahr + 5 Monate
*Trollpost
#1*
-
Tim06TR schrieb:
Walnut_Burl schrieb:
tuni schrieb:
sorry aber ich kenn mich halt wirklich nicht sehr gut aus
Das wird, wenn du weiter am Ball bleibst mit der Zeit kommen. Ich zum Beispiel lerne auch erst seit ca. 1-2 Monaten C++ und kann meines Erachtens schon relativ viel
1 Jahr + 5 Monate
*Trollpost
#1*
Sollte man vielleicht mal einen Thread aufmachen, bei dem jeder (der möchte) angibt wie lange er schon welche Programmiersprache ausübt?
Ich fänd diese Idee ganz nett
-
funktioniert der fstream eigentlich nur mit .txt dateien oder kann ich damit auch wild in .doc's etc. reinschreiben? xD
-
logo geht das ... die Endung sagt zum Großteil ja nur aus, mit welchem Programm es geöffnet werden soll. Ob das, was dann angezeigt wird, schön ist, mag mal dahin gestellt sein, aber bei docs gibts da keine Probleme.
-
BasicMan01 schrieb:
soll. Ob das, was dann angezeigt wird, schön ist, mag mal dahin gestellt sein, aber bei docs gibts da keine Probleme.
Doch, zumindest wenn er mit einer doc-Datei eine Worddatei meint. Diese sind speziell formatiert.
-
Ok gibt es auch noch Formatierungsmöglichkeiten, wenn man z.b. etwas in eine exceltabelle schreibt:
welche spalte, spaltenbreite, etc...
-
Hallo Forumsgemeinde,
ich heiße Tobias und wollte euch an dieser Stelle um Hilfe bitten. Da es um das o.g. Thema geht, mache ich hier einfach mal weiter. Hoffe das ist ok.
Für´s Sudium muss ich ein Pflichtprogramm schreiben, stehe nun aber vor einem Problem, welches ich nicht gelöst bekomme.
Wir sollen 10 Zahlen einlesen, sortieren (Insertion Sort) und in einer Datei ausgeben. Neben der eingegebenenen Reihenfolge am Anfang der Textdatei und der sortierten Reihenfolge am Ende soll mittendrin nun sinngemäß folgendes stehen:
Die Zahl X wurde an der Xten Stelle eingetragen.Habe zuerst versucht einfach mit outfile <<... weiter zu machen, wie zuvor auch - Fehler
Also versucht die zu erstellende Text-Datei in der Funktion ein weiteres Mal zu öffnen und den genannten Text auszugeben, dann wird aber mein zuerst eingegebener Text gelöscht. Wie kann ich dieses Problem umgehen?Schonmal vielen Dank für eure Hilfe
Tobias
Anbei mal der Quellcode
#include <iostream.h> #include <fstream> using namespace std; int main(void) { int Zahlen[10],x,z; void insertionsort(int x[],int anzahl_zahlen); std::ofstream outfile; outfile.open("Protokoll.txt"); /*öffnen der Protokoll-Datei,damit Daten automatisch eingetragen werden können*/ outfile << "Ausgangsdaten : " << std::flush; cout<<"Bitte geben Sie 10 Zahlen ein : "<<endl; for(x=0;x<10;x++) { cout<<"Zahl "<<x+1<<": "<<flush; cin>>Zahlen[x]; outfile << Zahlen[x]<< " "<<std::flush; } outfile << " "<<std::endl; outfile << " "<<std::endl; insertionsort(Zahlen,10); /*Aufruf der Insertionsort-Funktion nachdem 10 Zahlen eingegeben wurden. Übergeben wird das Feld mit 10 Zahlenwerten*/ cout<<endl<<"Hier nun die Zahlen, sortiert von klein nach gross"<<endl; outfile << "Sortierte Daten : " << std::endl; for(x=0;x<10;x++) { cout<<"Zahl "<<x+1<<": "<<Zahlen[x]<<endl; /*Ausgabe der sortierten Zahlen, nachdem sie die Funktion durchlaufen haben*/ outfile << Zahlen[x] << " " << std::flush; } outfile << " "<<std::endl; outfile << " "<<std::endl; outfile.close(); return 0; cin>>z; /*Hilfe, damit das DOS-Fenster nicht gleich wieder schliesst*/ } /*Hier beginnt die ausgelagerte Insertionsort-Funktion*/ void insertionsort(int x[],int anzahl_zahlen) /*In dieser Funktion wird nun sortiert*/ { int Vergleichszahl,i; for(int j=1;j<anzahl_zahlen;j++) { Vergleichszahl=x[j]; /*j=1, weil die 2. eingegebene Zahl also X[1] mit der ersten X[0]verglichen wird*/ i=j-1; while(x[i]>Vergleichszahl && i>=0) /*ab hier vergleich immer weiter nach unten, d.h. 6. Eingabe wird mit 5.,4.,3.,2. etc verglichen. Ist x[i]>Vergleichszahl nicht mehr erfüllt, geht die for Schleife mit folgendem Befehl weiter x[i+1]=Vergleichszahl; */ { x[i+1]=x[i]; i--; } x[i+1]=Vergleichszahl; } }
-
c-men schrieb:
Ok gibt es auch noch Formatierungsmöglichkeiten, wenn man z.b. etwas in eine exceltabelle schreibt:
welche spalte, spaltenbreite, etc...Und ob ASCII, UTF8 oder gar (z.B. PDFs) als Informationen die nichts mehr mit dem eigentlichen Text zu tun haben. Menschenlesbar sind die Formate von Word und Excel jedenfalls nicht. Mit fstream wird man jedenfalls keinen Erfolg haben, wenn man die Formatierung nicht kennt. Zumindest wenn das Dokument auch noch vom entsprechenden Programm gelesen werden soll.