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 :( ?  
Gehen Sie zu Seite Zurück  1, 2, 3, 4
  Zeige alle Beiträge auf einer Seite
Auf Beitrag antworten
Autor Nachricht
_matze
Mitglied

Benutzerprofil
Anmeldungsdatum: 31.07.2007
Beiträge: 9606
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: 9606
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: 9606
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: 9606
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 :( ?  
Gehen Sie zu Seite Zurück  1, 2, 3, 4
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.