C++; Nur einen bestimmten Zahlenberreich zulassen als eingabe
Hallo liebe Leut, und zwar folgendes Problem: kann mir jemand mal einen kurzen Beispielquellcode hier schreiben und zwar will ich eine Realistische Tagestemperatur Eingabe haben in einer schleife: for (int i = 0; i < 7; i++) { cout << "Geben sie die Tagestemperatur (in Celsius) fuer Tag " << i+1 << " ein.\n"; cin >> temperaturen[i]; } Diese soll jetzt so bearbeitet werden dass sie nur Zahlen (0-9) , minus, punkt, und strich akzeptiert
Zudem nur die zahlen von ca. -99 bis 99 da es sich halt um Tagestemperaturen handelt in dem Fall hier
vielleicht wisst ihr ja sonst oder auch noch das hier:
http://www.gutefrage.net/frage/c--fuer-variablen-wochentage-hinzufuegen
hoff ihr könnt mir helfen LG
2 Antworten
#include <iostream>
#include <string>
#include <cstdlib>
using namespace std;
float temp[7];
void eingabe()
{
for (int i = 0; i < 7; i++)
{
cout << "Geben Sie die Tagestemperatur (in Grad Celsius) fuer Tag " << i + 1 << " ein: ";
cin >> temp[i];
}
}
void kontrolle()
{
for (int i = 0; i < 7; i++)
{
cout << "Tag " << i <<": " << temp[i] << "\n";
if (temp[i] < -99 || temp[i] > 99)
{
cout << "Diese Eingabe war Falsch! Bitte einen Wert zwischen -99 und 99 eingeben.\n";
}
}
}
int main()
{
eingabe();
kontrolle();
system("Pause");
return 0;
}
Hoffe habs richtig verstanden...
MFG
DeepThought
Noch eine andere Frage vllt. weist dus ja grad :)
Wenn ich jetzt eine string Variable in eine andere Funktion übernehmen will in der selben Datei, wie mach ich das? :D
Also ich dacht jetzt so:
string Name_Funktion () { string a = "..."; return a; }
void NameFunktion2() { cout << a; }
dann sagt er mir aber dass er das a nicht erkannt hat :(
was genau willst du machen? du willst in Name_Funktion() einen string definieren, den du dann in NameFuntion2() nutzen kannst?
also ja, ich will das in dem Fall jetzt, dass die Konsole das Wort ausgibt was ich in a definiert hab..
wenn du das a in der funktion deklarierst, dann kennt es nur die funktion entweder du übergibst vorher eine variable wos reingeschrieben wird, oder du deklarierst die variable global (besser eine variable an die funktion zurückgeben)
Also ich würde dir empfehlen mal etwas über Parameterweitergabe in C++ nachzulesen.
Ich denke, dass was du machen willst, ist dass hier:
#include <iostream>
#include <string>
#include <cstdlib>
using namespace std;
void darstellen(string a)
{
cout << a << endl;
}
int main()
{
string b;
cin >> b;
cout << endl;
darstellen(b);
system("Pause");
return 0;
}
oder dass hier, aber an beispiel einer rechnung. Sehe hier nicht viel Sinn im Umgang mit Wörtern.:
#include <iostream>
#include <string>
#include <cstdlib>
using namespace std;
int quadrat(int a)
{
int ergebniss;
ergebniss = a*a;
return ergebniss;
}
int main()
{
int b, c;
cout << "\nZahl: ";
cin >> b;
c = quadrat(b);
cout << "\nErgebniss: " << c << endl;
system("Pause");
return 0;
}
Name_Funktion(string a){
string a="...";
return a;}
Name_Funktion2{string a){
cout a;}
int main (){
string a; Name_Funktion(string a);
Name_Funktion2(string a);
}
also ich will in einem Unterprogramm sagen drücke 1: string a ="Tage" drücke 2:string a="Wochen" und dann will ich in einem weiteren Unterprogramm sagen "Es dauerte so und so viel "a"s
Nur das a erkennt er nicht im nächsten Unterprogramm wie schaff ich das? Also ich hab jetzt 1.:
cout << "Moechten sie mit\n(1)Stunden,\n(2)Tagen,\n(3)Monaten,\n(4)Jahren oder\n(5)Wochen arbeiten?";
char antstmj;
string a = "";
do
{
antstmj = _getch();
if (antstmj == '1')
a = "StundeN";
else if (antstmj == '2')
a = "TagEn";
else if (antstmj == '3')
a = "MonatEn";
else if (antstmj == '4')
a = "JahrEn";
else if (antstmj == '5')
a = "WocheN";
} while (antstmj != '1' && antstmj != '2' && antstmj != '3' && antstmj != '4' && antstmj != '5');
da hab ich festgelegt was 'a' ist und jetzt möcht ich in einem anderen Teil sagen:
cout << "\nMit wie vielen " << a << " moechten sie arbeiten?\n";
int x;
cin >> x;
Und da erkennt er das a nicht und wie schaff ich das jetzt? :)
#include <iostream>
#include <string>
#include <cstdlib>
using namespace std;
string auswahl()
{
string wahl;
int a;
cout << "Bitte Waehlen:\n(1)Stunden\n(2)Tagen\n(3)Wochen\n(4)Monaten\n(5)Jahren\n";
cin >> a;
switch (a)
{
case 1:
wahl = "Stunden";
break;
case 2:
wahl = "Tagen";
break;
case 3:
wahl = "Wochen";
break;
case 4:
wahl = "Monaten";
break;
case 5:
wahl = "Jahren";
break;
default:
cout << "\nUngülitg";
break;
}
return wahl;
}
int main()
{
cout << "\n" << auswahl() << "\n";
system("Pause");
return 0;
}
schön, dass du C++ lernen möchtest. Deine Frage zeigt jedoch, dass du nicht sehr systematisch heran gehst. Auch die Antworten werden dir wahrscheinlich beim Lernen von "echtem" C++ nicht viel weiter helfen. Ich empfehle Dir, dass du dir einen C++-Kurs wie z.B. cpp-mta-rwthaa.pdf auf http://www.walddobler.de/Skripte/cpp/. Dort findest du auch alle Antworten auf deine aktuellen Probleme. Das systematische Lernen ist zwar anfangs recht anstrengend und vielleicht auch etwas langweilig, führt aber letzten Endes zum Ziel. Um C++ autodidaktisch einigermaßen (Klassen, Vererbung, Überladen von Funktionen und Operatoren, Templates, Standard Template Library) zu lernen, muss man schon mit 2 Jahren rechnen.
genau so, perfekt, danke :)