Newbie-Fragen
-
Na wird es schon, aber wenn du ne leere Zeile haben willst musst du eben zweimal machen, sprich "\n\n".
Da wären wir auch schon beim Thema, für einen Zeilenumbruch brauchst du '\n', endl aber eigentlich nicht. Obs jetzt wirklich bei solchen Programmen nen Unterschied macht... naja
mfg
-
Halloele!
Eine Uebungsaufgabe aus dem Buch von Ulla Kirch:
Korrigieren sie dieses Program [...]So, das fertige Programm soll den Text auswerfen:
Tippen Sie ein Wort mit hoechstens 3 Zeichen ein.Danach soll es das Wort dadrunter abbilden.
Das ist ja auch garkein Problem, jedoch moechte ich wissen wie man mit "zu langen" Woertern umgehen koennte.
a) den String kuerzen (wie lautet der operator? )
b) die Stringlaenge ueberpruefen und mit if arbeiten.
c) wie im Buch nur 3 Buchstaben zulassenWelches davon ist die "beste" Loesung?
Im Buch wird einfach mit setw(4) bei der eingabe gearbeitet, warum 4 und nicht 3?
-
sinnlos123 schrieb:
Im Buch wird einfach mit setw(4) bei der eingabe gearbeitet, warum 4 und nicht 3?
Vermutlich, weil dieses "tolle" Buch mit nullterminierten Zeichenketten im C-Stil arbeitet, anstatt mit C++-Strings. Das vierte Zeichen ist dann die Nullterminierung, da setw die Anzahl der geschriebenen Zeichen festlegt.
a) den String kuerzen (wie lautet der operator? )
b) die Stringlaenge ueberpruefen und mit if arbeiten.
c) wie im Buch nur 3 Buchstaben zulassenWelches davon ist die "beste" Loesung?
Kommt drauf an. Alles hat Vor- und Nachteile, weil alle davon etwas anderes tun. Man muss eben wissen, was man genau möchte. Sie unterscheiden sich jeweils da drin, was hinterher bei welcher Art von Eingabe noch im Eingabestrom verbleibt und was nicht. Die genauen Antworten auf deine Fragen hängen auch davon ab, ob du C-Strings oder C++-Strings benutzt.
-
hi, das Buch handelt von c++, und wird auch hier angepriesen^^ (wie lerne ich c++ thread)
und das Programm wird mit einem c++ compiler hergestellt.
b) und c) braucht nicht beantwortet werden, nur a)
wie kuerzt man einen String wenn man die ersten n buchstaben behalten moechte (links nach rechts gelesen).eine weitere methode waere, dass ausgabefenster zu beschraenken oder?
Das "Problem" ist natuerlich nicht wirklich wichtig, daher kann ich auch keinen Anwendungszweck benennen

-
sinnlos123 schrieb:
hi, das Buch handelt von c++, und wird auch hier angepriesen^^ (wie lerne ich c++ thread)
Kannst du das genauer zeigen?
und das Programm wird mit einem c++ compiler hergestellt.
C++ umfasst auch viel von C. Bloß weil man C in C++ benutzen kann, wird es dadurch aber nicht zu "richtigem" C++.
b) und c) braucht nicht beantwortet werden, nur a)
Da gilt aber trotzdem:
SeppJ schrieb:
Die genauen Antworten auf deine Fragen hängen auch davon ab, ob du C-Strings oder C++-Strings benutzt.
Besonders bei den C-Strings kann das durchaus recht ekelhaft werden, je nach Anspruch an die Sauberkeit des Programms (Quick&Dirty wäre, das vierte Zeichen auf 0 zu setzen). Bei C++-Strings einfach resize.
eine weitere methode waere, dass ausgabefenster zu beschraenken oder?
Das ist eine komische Denkweise. Wenn man es nicht sieht, passt es?
http://www.nachdenkseiten.de/upload/bilder/2009zensursulamediengestalter.jpg
-
SeppJ schrieb:
sinnlos123 schrieb:
hi, das Buch handelt von c++, und wird auch hier angepriesen^^ (wie lerne ich c++ thread)
Kannst du das genauer zeigen?
und das Programm wird mit einem c++ compiler hergestellt.
C++ umfasst auch viel von C. Bloß weil man C in C++ benutzen kann, wird es dadurch aber nicht zu "richtigem" C++.
b) und c) braucht nicht beantwortet werden, nur a)
Hallo

Hier der Thread, in dem das Buch "C++ lernen und professionell anwenden von Peter und Ulla-Kirch Prinz" angepriesen wird. http://www.c-plusplus.net/forum/112134-full
Die Aufgabe um die es hier gerade geht waere auf S.99 Aufgabe 5 zu finden(vll hast du es ja)Wie jetzt, wenn ich einen C++ compiler benutze, dann MUSS ich doch c++ schreiben um immer compilen zu koennen oder nicht? Klar, kann natuerlich sein, dass Code-schnipsel die in c++ compilierbar sind auch in c erwuenschtes hervorbringen.

Da gilt aber trotzdem:
SeppJ schrieb:
Die genauen Antworten auf deine Fragen hängen auch davon ab, ob du C-Strings oder C++-Strings benutzt.
Besonders bei den C-Strings kann das durchaus recht ekelhaft werden, je nach Anspruch an die Sauberkeit des Programms (Quick&Dirty wäre, das vierte Zeichen auf 0 zu setzen). Bei C++-Strings einfach resize.
also waere der entstehende code-schnipsel:
cin << x; x.resize (3); // Oder 4? cout >> x;?
eine weitere methode waere, dass ausgabefenster zu beschraenken oder?
Das ist eine komische Denkweise. Wenn man es nicht sieht, passt es?
http://www.nachdenkseiten.de/upload/bilder/2009zensursulamediengestalter.jpg
genial!
Ich schrieb ja bloss, ob es eine Methode waer, nicht ob sie "gut" ist
Aber ja, ist wohl dumm sowas zu machen
Edit^2: kannst von mir aus den Thread mergen mit haeufig gestellte Fragen, bzw. dort poste ich demnaechst meine trivialen Fragen

-
Hi, ich verstehe folgendes nicht:
#include <iostream> using namespace std; int main() { bool a=false; int x=7; cout<<x<<endl; a=x++ == 8 || x == 7; cout<<a<<endl; cout<<x; return 0; }Ausgabe:
(x=)7
(a=)0
(x=)8Warum veraendert sich x? ich dachte die a-zeile bestimmt nur a, aendert aber nicht x.

-
mehrfache verwendung eines ausdrucks, den du postinkrementiert hast in der selben zeile ist afaik undefined behaviour. und x ändert sich logisch da es postinkrementiert wird...
-
sinnlos123 schrieb:
Warum veraendert sich x? ich dachte die a-zeile bestimmt nur a, aendert aber nicht x.
x++ ändert x, wenn es ausgewertet wird.
-
00000000 schrieb:
Ein Buchstabe ist auch nur eine Zahl im Speicher. Für Zeichenketten ist C++ eh nicht geeignet, das kann nicht mal UTF8.
LibreOffice und OpenOffice sind in C++ geschrieben. Kann ich da dann keine Umlaute verwenden
? Ach ja - und Firefox ist auch in C++ geschrieben. Ich kann mich aber erinnern, im Web Umlaute gesehen zu haben, obwohl ich Firefox verwende.
-
hi, ein compiler macht ja aus (zu)komplizierten Rechnungen wie 1+1-1-1 ja sofort 0, was ist aber wenn ich folgendes habe:
x=1
x=2
x=1
....fasst der compiler auch sowas zusammen? (ok, mit magic numbers sollte man eh nich proggen, aber geht ja ums prinzip
)
-
wenn er den wert zu compilezeit evaluieren kann, kann das ein compiler unter umständen tun (bzw teilweise MUSS er es tun, siehe tmp).
-
was muss ich machen um das am Bildschirm angezeigte zu speichern, meine natuerlich jegliche Art von Text. Genauer: das von einem bestimmten Programm angezeigte.
ein kleiner Hinweis in die richtige Richtung wuerde mir reichen

-
ofstream.
Und jedes Mal wenn du cout benutzt, schreibst du das auch in ofstream.