Lerne c++ bei schleifenende hilfe.
-
Hello World
so beginnen viele Programme hier
meins nichtAuch ich habe mich entschlossen eine Programiersprache zu lernen.
c++ find ich echt bedienerfreundlich für einen null mit Computer zu tun gehabten.Ich habe mich viel belesen und versuche echt so viel wie möglich alleine hinzubekommen. Manchmal fehlt es halt am logischen anstoss.
zu meinen prog. es soll txt eingabe speichern und lesen und immer wieder eine neue eingabe zulassen.
hier meine frage.
wie setze ich mein prog in die schleife ?
ich setze mal den Code hier drunter damit ihr sehen könnt wie weit ich damit bin
PS es läuft soweit wie ich es will nur nicht in der schleife#include <string.h> #include <iostream> #include <string> #include <fstream> using namespace std; int main(void) { char ent =false, J; do{ ifstream eingaben; string zeile; eingaben.open("Adressen.txt"); if (eingaben.is_open()) { cout << " Vorhanden Filme sind...\n"; while (getline(eingaben, zeile)) { cout << " " << zeile << endl; } eingaben.close(); } else { cout << " *+$.Noch keine Filme vorhanden.$+*\n"; cout << "\n"; } string Adressen; cout << "*********************************************Willkommen*********************************************\n" << " ****************************************Movie.Adress.Saver****************************************\n" << "\n" << "Eingabe: [Name] (Adresse..https...) Enter nicht vergessen \n"; fstream Adressen1; Adressen1.open("Adressen.txt", ios::out | ios::app); getline(cin, Adressen); Adressen1 << Adressen << endl; Adressen1.close(); cout << " Weitere Eingabe?\n" << "\t1 J\n" << "\t2 N : \n"; cin >> ent; while (ent = '1');{ cout << "Beehren sie uns bald wieder! ;) \n"; cin.sync(); cin.get(); return 0; }
Nicht beschimpfen was es ist... zum lernen braucht man ein Problem und das kann ich damit klären und erweitern
Danke schon mal für die hilfe.
-
DeepKey schrieb:
wie setze ich mein prog in die schleife ?
So wie gezeigt sollte es gar nicht erst kompilieren. Überprüfe deine Klammersetzung. Zu jedem { gehört genau ein } und umgekehrt. Beachte (und korrigiere entsprechend) die Warnungen des Compilers.
-
wenn du do wegnimmst und unten von 44 - 48 entfernst funktioniert es
wie setze ich das ganze denn richtig in schleife?
-
so funktioniert er.
#include <string.h> #include <iostream> #include <string> #include <fstream> using namespace std; int main(void) { ifstream eingaben; string zeile; eingaben.open("Adressen.txt"); if (eingaben.is_open()) { cout << " Vorhanden Filme sind...\n"; while (getline(eingaben, zeile)) { cout << " " << zeile << endl; } eingaben.close(); } else { cout << " *+$.Noch keine Filme vorhanden.$+*\n"; cout << "\n"; } string Adressen; cout << "*********************************************Willkommen*********************************************\n" << " ****************************************Movie.Adress.Saver****************************************\n" << "\n" << "Eingabe: [Name] (Adresse..https...) Enter nicht vergessen \n"; fstream Adressen1; Adressen1.open("Adressen.txt", ios::out | ios::app); getline(cin, Adressen); Adressen1 << Adressen << endl; Adressen1.close(); cout << "Beehren sie uns bald wieder!"; cin.sync(); cin.get(); return 0; }
-
So geht's richtig:
do { // ... cout << " Weitere Eingabe?\n" << "\t1 J\n" << "\t2 N : \n"; cin >> ent; } while (ent == '1');
-
ich hab es jetzt so eingebaut
#include <string.h> #include <iostream> #include <string> #include <fstream> using namespace std; int main(void) { do { int ent = false, j; ifstream eingaben; string zeile; eingaben.open("Adressen.txt"); if (eingaben.is_open()) { cout << " Vorhanden Filme sind...\n"; while (getline(eingaben, zeile)) { cout << " " << zeile << endl; } eingaben.close(); } else { cout << " *+$.Noch keine Filme vorhanden.$+*\n"; cout << "\n"; } string Adressen; cout << "*********************************************Willkommen*********************************************\n" << " ****************************************Movie.Adress.Saver****************************************\n" << "\n" << "Eingabe: [Name] (Adresse..https...) Enter nicht vergessen \n"; fstream Adressen1; Adressen1.open("Adressen.txt", ios::out | ios::app); getline(cin, Adressen); Adressen1 << Adressen << endl; Adressen1.close(); cout << "Noch eine?\n" << "\t1 J\n" << "\t2 N : "; cin >> ent; }while (ent == '1'); cout << "Beehren sie uns bald wieder!\n"; cin.sync(); cin.get(); return 0; }
jetzt kommt der fehler den ich nicht verstehe
In function
int main()': 49
ent' undeclared (first use this function)
(Each undeclared identifier is reported only once for each function it appears in.)
-
int main() { do { int var_xyz = 1337; //var_xyz = 123123; } while( var_xyz != 1337 ); }
ist falsch, da var_xyz in diesem bereich nicht mehr gültig ist (nicht mehr sichtbar). das sagt dir auch die fehlermeldung
->
int main() { int var_xyz = 1337; do { //var_xyz = 123123; } while( var_xyz != 1337 ); }
-
zeigt er mir den nächsten fehler in Zeile cin.sync(); und cin.get??
expected constructor, destructor, or type conversion before '.' tokenNicht übel nehmen fange an aber da reichen die Infos noch nicht aus.
die schleife hat er jetzt aber angenommen
-
c++ [...] bedienerfreundlich
Im Vergleich zu Assembler vielleicht
-
nee habs aber geschafft und vielen vielen dank und jetzt hab ich es auch verstanden. falls mal wieder was sein sollte komme ich nochmal auf euch zurück
-
Wie man eine do-while-Schleife benutzt steht in jedem Lehrbuch. Die Gefahr bei solchen Leuten wie dir ist groß, dass sie wegen jedem ach so kleinen Furz ein Thema aufmachen.
DeepKey schrieb:
jetzt hab ich es auch verstanden.
Im Leben nicht!
-
ist es möglich wenn ein Programm eine txt.datei mit einer Zeile schreibt die Auswählbar zu machen und dann mit Funktionen zu bestücken?
z.B.
starte Programm und gebe eine Zeile ein, diese wird mit Enter bestätigt
Zeile wird in der .txt gespeichert und wieder angezeigtjetzt der punkt an den ich nicht weiter komme
im ideal fall listet er auf mit einer Nummer davor
z.b[1] 1.eingabe
[1] 2.eingabe
.
.uswjetzt kann ich auch die Nummer drücken und die Zeile umschreiben oder löschen
dankend im vorraus für eure ideen
-
im voraus
-
Ich würde prinzipiell einen
vector<string>
hernehmen, zu Beginn von einer Datei einlesen und am Ende damit die Datei überschreiben.Während das Programm läuft sind dann alle Zeilen im
vector<string>
gespeichert und du kannst sie ausgeben/ändern/löschen.
-
okay und wie gebe ich den vector den wert der in der zeile schon steht?
-
Einlesen und std::vector::push_back(std::string).
-
Besten dank. und für die die genervt sind von diesen "leichten" fragen
können uns gerne mal in die küche stellen 10 jahre Erfahrung in einen Bereich lassen dinge die für einen selber als Leichtigkeit existanz sind für andere doch schwieriger erscheinen.
-
DeepKey schrieb:
10 jahre Erfahrung in einen Bereich lassen dinge die für einen selber als Leichtigkeit existanz sind für andere doch schwieriger erscheinen.
Das ist prinzipiell zwar richtig, dennoch existiert genug Dokumentation fuer so ziemlich alles.
Und grundsaetzlich gilt: docs lesen > rumprobieren > ohne probieren "nach hilfe schreien"
-
übe und lerne jetzt nicht erst ne Woche. will auch nicht kopieren und deswegen versuche ich mich an eigene Programme. wenn aber ein Problem nach längeren suchen nicht gelöst wird und das beinhaltet probieren, suche ich Hilfe .
was soll man denn sonst machen wenn man es nicht versteht. sry hier sitzt kein prof. neben mir der mir meine Fragen beantwortet.habe es jetzt so das er mir eine Auflistung macht. nun will ich es nur noch auswählen und direkt im WebBrowser öffnen können und oder eine zeile löschen und aufrücken lassen.
#include <string.h> #include <iostream> #include <string> #include <fstream> #include <vector> using namespace std; int main(void) { int ende = 1; do{ cout << "*****************************************************Willkommen*********************************************************\n" << " ************************************************Movie.Adress.Saver****************************************************\n" << "\n"; cin.sync(); ifstream eingaben; string zeile; int z = 1; vector <int > zeil (10); for (int z= 1 ; z < zeil.size(); z++){ zeil [z] = z ; } eingaben.open("Adressen.txt"); if (eingaben.is_open()) { cout << " Vorhanden Filme sind...\n" << "\n"; for (int z = 1 ; z < zeil.size (); z++){ while (getline(eingaben, zeile)) { cout << zeil [z++] << ": " << zeile << " " << std::endl; } eingaben.close(); }} else { cout << " *+$.Noch keine Filme vorhanden.$+*\n"; cout << "\n"; } cout << "\n"; cout << " #*'Eingabe: [Name] (Adresse..https...) Enter nicht vergessen'*# ;) \n"; fstream Adressen1; Adressen1.open("Adressen.txt", ios::out | ios::app); string Adressen; getline(cin, Adressen); Adressen1 << Adressen << endl; Adressen1.close(); cout <<"\n"; cout << "weitere Adresse \t1 Ja \t2 Nein \n"; cin >> ende; system ("cls"); }while (ende ==1 ); cout << "***********************************************Beehren sie uns bald wieder**********************************************\n" "\n" "?????...Taste feur beenden druecken."; cin.sync(); cin.get(); return 0; }
Falls einer eine Idee hat nimm ich sie gerne entgegen. Also bisher bin ich zufrieden weil es das macht was ich bisher wollte.
Ps. Als blutiger Anfänger hab ich zu diesen Code erst 2 wirkliche Fragen gestellt
-
Als blutiger Anfänger hab ich zu diesen Code erst 2 wirkliche Fragen gestellt
Nenn es wie du willst, dein Geschwafel nervt!