Variable auf Wert überprüfen
-
Hallo,
da ich hier leider nichts für Anfänger gefunden habe, poste ich mein Prob einfach mal hier herein und hoffe Hilfe zu erhalten!
Also, ich habe a. das Prob das ich "aus welchem Grund auch immer keine String Variablen hinbekomme. Selbst wenn ich
#include <string> using namespace std; int main() { String str=""; cin>>str; }
mache geht gar nix. Ich habe auch schon #include <sstream> versucht, aber mein Code::Blocks ignoriert beide Varianten.
Mein anderes Problem wäre eine Variable auf den Wert zu überprüfen, da ich leider nichts über equals (wie bei Java) gefunden habe, gehe ich nun schon auf dem Zahnfleisch daher und suche nach was wo ich nicht mal weiß was nach ich suchen soll
.
Folgendes habe ich versucht:
#include <iostream>
#include <string>
using namespace std;int main()
{
cout<<"hallo zum Nagel auf den Kopf Prog. Wenn sie eine Frage mit Ja beantworten wollen, geben Sie bitte 'j' ein ansonsten 'n'"<<"\n\n\n";
char j='ja',n='nein';
bool nageltiefe, fertig;
char hammer,finger, genug, anrufen, kommt, nagel_tiefe,aufgeraumt;
cout<<"Haben Sie den Hammer in der Hand?"<<"\n";//Hammer in die Hand nehmen
cin>>hammer;//Finger getroffen
//nicht mehr weiterhämmern
//bool lösung=true;//Lösung suchen
do//Überprüft das Endziel fußgesteuert
{
if (hammer=j)//hammer abfrage?{
//hammer in Hand
cout<<"Dann nehmen Sie bitte den Nagel in die andere Hand!"<<"\n";
cout<<"Beginnen Sie nun zielsicher den Nagel zu versenken."<<"\n\n";
cout<<"Haben Sie sich nun auf den Finger gehauen?"<<"\n";
cin>>finger;
if (finger=n)//auf finger gehauen?
{
//finger ist weg}
if (finger=j)
{
//auf finger gehauen
cout<<"A"<<"\a"<<"U"<<"\a"<<"A"<<"\a"<<"\n";
cout<<"Hammer wegwerfen ;-)"<<"\n";
cout<<"Bitte finger desinfizieren gehen"<<"\n\n";
cout<<"Haben Sie nun die Schnauze voll?"<<"\n";
cin>>genug;
if (genug=j)//weiterarbeiten?
{
//genug mit dem Hämmern
cout<<"Da Sie ja nun genug mit dem haemmern haben, wollen sie nun einen Freund anrufen?"<<"\n";
cin>>anrufen;
if (anrufen=j)
{
int i=0;cout<<"kommt der Freund"<<"\n";
cin>>kommt;
if (kommt=j)
{
i=10;
}
if (kommt=n)
{
while (i<=10)
{i++;
if (i==9)
{
cout<<"Das war nun Freund Nr. "<<i<<"\n";
int a;
/for (a=0,a=10,a++)
{
cout<<"Leider keine Freunde mehr zum Anrufen"<<"\n\n";
a++;
}/
}}
}
}
//kein esle zu anrufen (einseitige Anweisung)
}
else
{
do
{
cout<<"Haben Sie die gewünschte Nageltiefe erreicht?";
cin>>nagel_tiefe;
if (nagel_tiefe=n)//Nageltiefe erreicht?
{
cout<<"ist der Nagel zu tief=";
cin>>nagel_tiefe;
if(nagel_tiefe=j)//Nagel zu tief?
{
cout<<"bitte Nagel etwas herausziehen!";
nageltiefe = false;
}
else
{
cout<<"bitte erneut mit dem Hammer auf den Nagel schlagen";
nageltiefe = false;
}
}
else
{
cout<<"Bitte nun das Bild auf den Nagel aufhängen."<<"\n\t";
cout<<"Sie können nun noch das Bild ausrichten"<<"\n";
cout<<"Vergessen "<<"\a"<<"Sie "<<"\a"<<"das "<<"\a"<<"aufraumen "<<"\a"<<"nicht "<<"\a\n";
cout<<"Haben Sie schon aufgeraumt?!"<<"\n";
cin>>aufgeraumt;
if (aufgeraumt=j)
{
nageltiefe=true;
fertig=true;
}
}
}while (nageltiefe=true);
}}
}
if (hammer=n)
{
//hammer nicht in Hand
cout<<"Bitte Hammer suchen und Prog erneut starten"<<"\n";
}
}while (fertig=true);
cout<<"Herzlichen Glückwunsch zum Erfolgreichen aufhängen des Bildes."<<"\n";}
Iwie geht es einfach net, denn er erkennt keinen Unterschied zwischen j und n. So kann ich leider meinen Code nicht wirklich testen, da er ja ohnehin immer das selbe macht.
PS: Nein dieses Programm hat ausser übung nicht gerade viel Sinn, ist eigentlich nur ne Struktogramm Übung von der Schule
LG Sam
-
Erstmal willst du vermutlich einfach C++ programmieren und nicht C++/CLI (.NET-Kram), zumindest sieht es stark danach aus, das ist also hier das falsche Forum.
Dann muss dir klar sein, dass der Datentyp char für ein einzelnes Zeichen steht. Eine Zuweisung "char c='ja';" ist also Quatsch. Es ginge z.B. "char *s="ja;". Und du willst vermutlich std::string benutzen. Du hast allerdings "String" geschrieben, das muss klein geschrieben werden, dann klappts auch (Header <string> einbinden). Strings vergleichen kannst du dann z.B. so:
std::string s="ja"; if(s.compare("ja")==0) { std::cout << "Jepp!" << std::endl; }else { std::cout << "Nöö..." << std::endl; }
-
Super, habe es mal kurz getestet und funktioniert
, vielen Dank. Das mit dem falschen Post tut mir leid, aber ich habe leider noch keinen Überblick, was .NET ist. Wenn ich die Themen der Channel ansehe, ist hier glaub gar nichts für so anfänger wie mich, oder???
Naja, ich danke dir vielmals, für die schnelle und freundliche Hilfe.
LG Sam
-
Das hier ist momentan deine korrekte Anlaufstelle:
http://c-plusplus.net/forum/viewforum-var-f-is-15.html
Reinstes, feinstes C++!
Und keine Sorge, Anfänger ist jeder Mal, und Anfänger haben hier durchaus was zu suchen. Gerade die haben doch Hilfe am nötigsten. Wenn ein, zwei Leute hier das anders sehen, dann ist das eben so. Das sollte dich nicht daran hindern, hier Fragen zu stellen. Das einzige, was hier nicht gern gesehen ist, sind Leute, die ihre Hausaufgabenstellung hier posten und ohne jegliche Eigeninitiative eine vollständige Lösung fordern. Aber davon bist du ja meilenweit entfernt.