Komisches Problem
-
Also ich bin ziemlich neu in C++ und ich hab en Programm geschrieben. Wo liegt der Fehler?
_______________
#include <iostream>
#include<cstdlib>
using namespace std;int main(){
char var1;
cout<<"Begrüßen Sie mich!";
cin>>var1;if((char)var1 !="Hallo")
{
cout<<"Hallo";
}}
_______________________________
-
var1 ist vom typ char, char kann nur ein einzelnes Zeichen speichern.
Der Wert von char ist also niemals "Hallo". Es wird also mit cin nur das erste Zeichen das der user eingibt gelesen.
Wäre aber nützlich zu wissen was es für einen Fehler gibt.
EDIT:
Mir fällt grade auf: Warum zum Teufel willst du var1 auf char casten?
Die Veriable ist bereits ein char,(char)
ist also völlig unnötig
-
Hi!
Du kannst nicht einfach Charaktervariablen untereinander prüfen.
Dazu gibt es die Funktion strcmp.Ein funktionsfähiges Programm ist folgendes:
#include <iostream> using namespace std; int main () { char str [30]; char hallo [6] = "Hallo"; cout << "Begrüßen sie mich: "; cin >> str; if (strcmp (str, hallo)) { cout << "Hallo" << "\t\"" << str << "\"" << endl; cin.get (); } else cout << "Es wurde 'Hallo' eingegeben!" << endl; cin.get (); return 0; }Hoffe ich konnte helfen!
Edit: Nochma etwas verbessert...
-
Ja schon ABER ich habe das Buch C++ von A bis Z und ich hatte den Befehl noch nicht. Also ich nehme an, mit der Zahl nach dem Name der Variable gebe ich die maximale Größe an, mit strcmp(str,hallo) überprüfe ich ob str und hallo gleich sind.
-
Ich habe genau das selbe Buch...
Wenn du mir sagst auf welcher Seite du gerade bist kann ich mir die Stelle ja noch einmal angucken!
-
Seite 90
-
@Walnut_Burl:
Warum inkludierst du denn <string> und arbeitest dann mit C-Strings?
Viel einfacher geht es doch mit der Klasse string:#include <iostream> #include <string> using namespace std; int main () { string str; string hallo = "Hallo"; cout << "Begrüßen sie mich: "; cin >> str; if(str!=hallo) { cout << "Hallo" << "\t\"" << str << "\"" << endl; cin.get (); } else cout << "Es wurde 'Hallo' eingegeben!" << endl; cin.get(); return 0; }Edit: Ich hab erst in Zeile 8 string str [30]; geschrieben. Das war allerdings falsch. Hab ich mal berichtigt.
Oder werden in dem Buch an der Stelle C-Strings behandelt?
MfG, Jochen
-
Ich wollte es erst auch mit strings machen aber dann dachte ich, wenn er im Beispiel noch C-Strings gebraucht, dann wollte ich dies auch in meinem tun.
Die String Bibliothek wir in dem Buch erst ganz am Ende behandelt.
-
Schlechtes Buch. Kauf dir den C++ Primer.
-
Dass das Buch schlecht ist kann man so pauschal nicht sagen!
Es behandelt alle wichtigen Themen die man benötigt um Programme in C++ zu schreiben.
Klar, es gibt einige Themen die nicht so gut behandelt werden, aber jedes Buch wird seine Schwächen und Vorteile haben. Es gibt kein ultimatives Buch!
-
Es ist ein schlechtes Buch, wenn die String Klasse erst gegen Ende beschrieben wird.
-
Naja, Das Buch ist auf jeden Fall nicht gut aufgebaut. Wenn das Buch C++ von A bis Z heißt, dann sollten auch die Klassen der C++ Laufzeitbibliothek verwendet werden. In dem Anfängerbuch, mit dem ich Programmieren gelernt habe, wurden Strings in einem der ersten Kapitel behandelt.
-
Dass das Buch schlecht ist kann man so pauschal nicht sagen!
Doch, kann man. Auch scheint es sich mit UML, Netzwerkprogrammierung, GUI etc. zu beschaeftigen, was jetzt nicht mehr zwingend C++ ist. Es gibt wenige gute C++ Buecher. Hier im Forum wurden schon einige gute diskutiert. Vielleicht magst du danach suchen.
Auch werden auf Arrays erst ab Seite 152 behandelt.
-
Walnut_Burl schrieb:
Dass das Buch schlecht ist kann man so pauschal nicht sagen!
Ich warne seit längerem vor diesem Buch. Es fällt in diesem Forum immer wieder negativ auf. Ich sage pauschal, daß das Buch schlecht ist und man nach dem Buch schlechter C++ kann als vorher, was sich darin äußert, daß man unverdorben weniger gute Bücher lesen muß, als nach der Lektüre von A-Z, um im Unternehmen einsatzfähig zu sein.
-
Ich selber habe es mir nur als Referenz gekauft (ich benutze auch die Referenz von cpp.com) und wenn man mal kurz etwas nachschlagen will ist es nicht schlecht.
Wie es als richtiges Lehrbuch ist, das weiß ich leider nicht
C++ habe ich mit dem Klassiker von Bjarne Stroustrup gelernt.
--> http://www.amazon.de/C-Programming-Language-Special/dp/0201700735/ref=sr_1_1?ie=UTF8&s=books-intl-de&qid=1271272575&sr=1-1Dieses Buch kann ich wirklich empfehlen (ich hatte zwar schon Vorkenntnisse durch diverse Tutorials aber es ist ein wirklich gutes Buch).
Also im Endeffekt meint ihr, dass C++ von A bis Z nichts ist?
-
Walnut_Burl schrieb:
Also im Endeffekt meint ihr, dass C++ von A bis Z nichts ist?
Sowas gemeines würden wir nie sagen. Da mußt Du schon zwischen den Zeilen die versteckten Andeutungen herauslesen.

-
volkard schrieb:
Walnut_Burl schrieb:
Also im Endeffekt meint ihr, dass C++ von A bis Z nichts ist?
Sowas gemeines würden wir nie sagen. Da mußt Du schon zwischen den Zeilen die versteckten Andeutungen herauslesen.


Naja, die Antwort auf die Frage wurde ja schon gegeben (und zusätzlich noch etwas Off-Topic Geblaber
)
-
Walnut_Burl schrieb:
Also im Endeffekt meint ihr, dass C++ von A bis Z nichts ist?
Es ist ein brauchbares Lehrbuch für C. Insbesondere da die wenigen Abschnitte die sich mit C++ befassen hervorgehoben sind, so dass man sie beim C-lernen überspringen kann.
-
SeppJ schrieb:
Es ist ein brauchbares Lehrbuch für C.
Noch nichtmal. Bei str[sizeof(str)]='\0' wird mir schlecht.
-
jokester schrieb:
SeppJ schrieb:
Es ist ein brauchbares Lehrbuch für C.
Noch nichtmal. Bei str[sizeof(str)]='\0' wird mir schlecht.
Dann wohl doch nicht. Habe schon lange nicht mehr reingeguckt. Genauer gesagt habe ich es verschenkt an jemanden den ich nicht mochte.
-
Welches Buch dann am besten im Internet kostenlos per Rapidshare oder irgenden gutes onlinetutorial